Если вы включаете CSS непосредственно в сам компонент или ожидаете, что компонент будет динамически загружать соответствующий CSS, то это может быть довольно сложно поддерживать или настраивать. Я не говорю, что вы не должны идти по этому пути, но будьте осторожны, прося ваши компоненты делать слишком много.
Система хуков, как указано в комментариях, является одним из способов справиться с этим.
Другим простым способом является предоставление стиля по умолчанию, который пользователи могут переопределять. Вероятно, это самый простой способ разрешить разные стили для каждого компонента.
<head>
<!-- Provide some defaults. Users should not customize this one. -->
<link rel="stylesheet" type="text/css" href="default.css">
<!-- User's can customize this file to override the default styling.-->
<link rel="stylesheet" type="text/css" href="custom.css">
</head>
<body>
<?php $App->INC("button"); ?>
</body>
button.php - отвечает только за рендеринг кнопки. Отдельные CSS-файлы будут фактически стилизовать его.
<?php
echo <input type"submit" class="button" value="Submit">
default.css - применяет стиль по умолчанию
.button {
color: blue;
}
custom.css - переопределяет стиль по умолчанию
.button {
color: red;
}
Последнее замечание, вы также можете захотеть использовать основной файл шаблона, который наследуют вложенные представления. Это помогает уменьшить количество полных файлов HTML, которые ссылаются на ваши файлы CSS. Идея состоит в том, чтобы иметь 1 (или несколько) файлов шаблонов, в которые сами представления внедряются. Вот немного псевдокода.
frontend.php
<html>
<head>
<!-- Links to CSS files here. -->
</head>
<body>
<?php $placeholder('body'); ?>
</body>
Login.php
<?php inherits('frontend.php')->body; ?>
<form id="login">
...
Register.php
<?php inherits('frontend.php')->body; ?>
<form id="register">
...
About-Us.php
<?php inherits('frontend.php')->body; ?>
<p>About Us</p>
...