Как правильнее организовать структуру и взаимодействие кода в php?
Возможно вопрос покажется немного странным для опытных разработчиков:)
Можно включать в php-файл функциональность из других файлов путем прямого включения фрагментов кода с помощью include и require
А можно в других файлах писать функции, включать их в файл и вызывать там.
Т.е. в одном случае - прямая подстановка, в другом - подстановка функций и последующих их вызов
С одной стороны вызов функций вроде как более гибкий и это более структурированный подход.
Но с другой стороны есть вещи которые должны вызываться автоматически (session_start, открытие базы данных). И еще есть глобальные переменные проекта.
Так как лучше?
Лучше мыслить не функциями и файлами, а приложением и его жизненным циклом. Тогда у вас будут подключаемые через автозагрузку классы и библиотеки и одна точка входа, в которой инициализируется приложение.
Почему-то мне очень сложно перестроиться на php с десктопного программирования на плюсах. Жизненный цикл - ну обратился пользователь к url, запустился интерпретатор php и ему нужно сгенерировать страничку. Пытаюсь все сделать в стиле MVC. Но это слишком общие слова. А мне нужно понять какие практики организации кода применяются в php... все примеры в книгах слишком примитивные и не показывают именно организации кода.
Если хочешь красивый код и логически правильную структуру - без объектов и классов никак.
И как уже написали, вместо include надо использовать пространства имен и autoload.
Да, похоже мои знания php отстали от реальности лет на 10 (да и тогда я коснулся этой темы поверхностно и не особо глубоко вникал во все тонкости и современные веяния). Буду изучать...