getContent()); self::assertSame("

le titre

\n<helloworld>print!static-content!generated-content!", $content); } function testPrint() { $component = new MyComponent(); ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); $component->print(); $content = ob_get_clean(); self::assertSame("

le titre

\n<helloworld>print!static-content!generated-content!", $content); } } class ZePrint implements IPrintable { function print(): void { echo "print!"; } } class ZeStaticContent implements IContent { function getContent(): array { return ["static-content!"]; } } class ZeGeneratedContent implements IContent { function getContent(): iterable { yield "generated-content!"; } } class MyComponent extends SimplePrintable { function print(): void { vo::h1(null); vo::h1("le titre"); vo::write(""); vo::write([""]); vo::write(new ZePrint()); vo::write(new ZeStaticContent()); vo::write(new ZeGeneratedContent()); } }