PHP-файл ... как распространять мой код - PullRequest
0 голосов
/ 22 декабря 2009

Я пишу веб-сайт с php на стороне сервера. который я никогда не использовал раньше. если я правильно понимаю, это процедурное программирование (это еще одна вещь, которую я никогда не делал)

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

в ojbect-ориентированных вещах гораздо яснее ...

пожалуйста, сообщите

Ответы [ 7 ]

4 голосов
/ 22 декабря 2009

Вы можете заниматься объектно-ориентированным программированием на PHP, и я предпочитаю структурировать его таким образом.

Если вы решите придерживаться процедурного стиля, 1 файл на процедуру не подходит, представьте, если в ООП вы сделали 1 файл на метод!

Группировать вещи лучше, может быть, у вас есть слой абстракции БД, в ООП вы можете сделать его классом в 1 файле. В процедурной реализации у вас будет куча процедур в 1 файле. Вероятно, назван так же.

3 голосов
/ 22 декабря 2009

Нет строгого определения того, где вещи должны быть размещены в PHP. Это зависит только от вас. Я предлагаю вам проверить шаблон MVC , если вы хотите писать сложные системы.

Не стесняйтесь использовать объектно-ориентированную модель в PHP, теперь это мой стиль выбора.

1 голос
/ 22 декабря 2009

Лично я никогда не прыгал в OO Wagon. Старые привычки умирают с трудом. Но я экспериментировал с cakePHP, который познакомил меня с шаблоном MVC (Model View Controller). С тех пор я обычно придерживаюсь этой структуры:

.htaccess << redirects all request URIs to index.php
index.php << the main processing file
_lib/  for configuration files
_lib/classes for all 3rd party classes (such as database abstraction, etc)
_views/
_controllers/
1 голос
/ 22 декабря 2009

Группируйте связанные процедуры вместе. Один файл на процедуру излишний.

Есть хороший совет по этому поводу в Code Complete . Это очень авторитетная книга по программированию с хорошим руководством по организации вашего кода.

0 голосов
/ 22 декабря 2009

Я предпочитаю стиль ОО для PHP 5 и, в частности, наслаждаюсь структурой, которую продвигает Zend Framework, используя деревья каталогов в стиле PEAR и позволяя сегментировать ваш код таким образом, который имеет смысл, с точки зрения ОО, и архитектурная точка зрения.

Я бы углубился в сферу применения OOAD, но я почти уверен, что в ней много источников, одним из лучших является книга «Полный код», упомянутая ранее в ответах на эти вопросы.

Посмотрите на http://framework.zend.com для макета Zend-проекта, особенно для быстрого старта, я думаю, вы могли бы найти, что он представляет вам хорошую структуру для использования, даже если вы не хотите использовать сам Zend Framework .

0 голосов
/ 22 декабря 2009

Мы склонны принимать структуру, в которой мы определяем наши объекты, специфичные для сайта, в 1 файле. Другой файл содержит все общие функции (наша общая библиотека). Есть еще один файл, определяющий все константы и основные структуры.

Реализация объектов и кода основного сайта (базы данных, аутентификации и т. Д.) Находится в общем файле. Этот файл включает в себя объекты, константы и файлы библиотеки и выполняет основные операции сайта.

Наконец, функциональные группы сайта помещаются в свои собственные файлы для генерации страниц. Эти файлы включают в себя общий модуль (файл).

Объекты кодируются для управления самими собой, поэтому в файлах функциональных страниц мало работы.

Раньше мы разбивали все объекты на их собственные файлы, но оказалось проще собрать их в 1 общий файл определений классов объектов.

0 голосов
/ 22 декабря 2009

PHP может быть объектно-ориентированным.

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

Если у вас всего несколько функций, используйте один включаемый файл со всеми функциями в нем.

Если на вашем сайте есть несколько областей, таких как «Членство», «Библиотека» и «Ресурсы», и в каждой области используется ряд функций (например, 5+), рассмотрите возможность создания файлов для каждой области, таких как: membersFunctions. php, libraryFunctions.php и resourcesFunctions.php.

...