Практика хранения файлов для классов

#php #file #directory #structure #file-management

#php #файл #каталог #структура #управление файлами

Вопрос:

Как вы храните файлы, которые должны использоваться в классе.

Например, сам файл класса, затем изображения, используемые в этом классе. Или вы не используете изображения в классе, а просто возвращаете вывод на главную страницу, которая, в свою очередь, использует изображения?

Недавно у меня возникли проблемы с принятием решения о том, помещать ли изображения, используемые классом, в глобальный каталог для веб-сайта или создавать свой собственный каталог. Это только что поразило меня, поскольку я понял, что класс, такой как для обработки изображений или для обработки БД, может использоваться с другими проектами, и может быть сложно попытаться найти связанные изображения в глобальной папке при их переносе.

Итак, как вы храните изображения, используемые в ваших классах? Или вы никогда не возвращаете распечатанный вывод из класса?

Используемый в этом случае язык программирования — PHP.

Комментарии:

1. Неясно, что вы подразумеваете под «изображениями, используемыми в ваших классах». Можете ли вы уточнить?

2. @Jordan Изображения, которые выводятся с содержимым, распечатанным самим классом.

3. Для любых, кроме самых маленьких проектов, я настоятельно рекомендую использовать систему шаблонов — Smarty хороша и хорошо поддерживается, но есть много других — и хранить всю разметку отдельно от логики вашего приложения. Это иногда называют разделением интересов и важно учитывать в любом проекте среднего или большого размера.

Ответ №1:

Изображения хранятся в отдельной папке. Во-первых, изображения должны быть доступны клиенту (браузеру), в то время как файлы php (за исключением пары, которые фактически используются в URL-адресах) могут храниться вне папки документа.

Точный путь к изображениям и другим файлам хранится в конфигурации. Это всего лишь небольшой PHP-файл, в котором хранится список настроек. Вы не должны жестко указывать путь к папке с изображениями в своих классах.

Ответ №2:

это структура, которую я использую

 /includes
  All the clases that you have
/logs
  Log files
/public_html 
  All the pages visible to the user
  /css
  /javascript
  /images
  

Вы можете иметь config.php файл, в котором у вас есть что-то вроде этого

 define("LIB_PATH", '/includes/');
define("IMG_PATH", '/public_html/images/');
  

и т.д.

Это дает вам преимущество использования абсолютных путей коротким, простым и понятным способом