Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
По ходу того, как приходится осваивать PHP, начинаю изобретать решения, которые наверняка ранее были уже разработаны. Сейчас понемногу делаю достаточно объемный (в плане сценариев) сайт. Одна крайность - весь код разместить в одном огромном PHP-файле. Другая крайность - каждую функцию/процедуру разместить в отдельном файле и подключать нужные с помощью include. Но оптимальное решение наверняка где-то между этими крайностями. Посоветуйте, как определить границу, когда код выносить в отдельный файл, а когда не выносить? Допустим у меня есть форма регистрации из двух шагов. В первом шаге пользователь заполняет поля формы и отправляет форму на сервер. Сервер обрабатывает данные, отправляет пользователю контрольный код по SMS и отображает второй шаг регистрации - форму с теми же полями readonly и полем для ввода контрольного кода. Пользователь вводит контрольный код и если он совпадает с тем, который был отправлен ранее сервером, то сервер выполняет определенные действия. На серверной стороне, допустим, для регистрации используется следующая функция: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Стоит ли эту функцию разделять на две? Или веб-сервер прочитает и обработает PHP-файл быстрее, чем будет выполняться include? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 21:12 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
Курите мануалы по MVC! Сваливать всё в один фаил не есть гуд и откровенный моветон! )) Почитайте также про Фреймворки! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 22:00 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
Alibek B., В данном вопросе нету строгого следования каким либо правилам. Это как абзацы в тексте :) Они появляются лишь от интуитивного (чаще субъективного) разделения рассказа на части. Точно так же и с файлами и кодом: понимается интуитивно. Каждый файл должен быть логически завершённым. Если взять личный кабинет с средним функционалом и в общих чертах описать функционал, получим: вход, забыли пароль, регистрация, настройки профиля, подписки, заказы (для магазина). Вот и первая и основная градация по файлам. Если какие-то файлы оказываются слишком сложные для осознания, всегда можно разделить функционал на более мелкие логически завершённые части. Если пишите не в процедурном стиле, а объектно ориентированный код, там принято один класс - один файл :) В редких случаях замечал другую логику разбиения ) P.S. Не забываем также про такое расплывчатое понятие как "уровни абстракции". Функционал двух разных уровней в один файл пихать также не следует (в последующем не кисло с толку сбивает) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2016, 00:15 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
И ещё раз про MVC И патерны вообще. следует разделять логику приложения, и представление(html) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2016, 08:42 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
Если говорить о семантике, то в этом случае логику разделения кода на файлы я более-менее себе представляю. Я несколько про другое хотел спросить. Вот если мой же код брать, его можно записать так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. А можно так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Есть ли практический смысл во втором варианте? С одной стороны сервер не будет загружать PHP-код, который не будет использоваться. С другой стороны у include есть накладные расходы и возможно они превышают экономию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2016, 09:57 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
Поясню, почему у меня такой вопрос возник. Я вообще не программист, но когда приходилось писать программы, это были обычно прикладные приложения (десктопные приложения или скриптовые утилиты для серверов). У прикладных приложений вся логика работы уже включена в исполняемые файлы и они обычно работают бесконечно по меркам машинного времени (то есть приложение запустилось, затем пользователь выполняет с ним какие-то сценарии и через какое-то время приложение закрывает). В процессе работы с приложением пользователь выполняет множество сценариев, поэтому логично что в память загружается сразу весь программный код приложения. А веб-приложение работает по другому. Сложный сайт может содержать сотни сценариев, но когда веб-сервер отрабатывает запрос посетителя, выполняется только один сценарий из сотни. И загружать весь программный код веб-приложения для каждого запроса скорее всего неэффективно (во всяком случае об этом свидетельствует то, что популярные фреймворки и CMS так не поступают). И честно говоря, такое меня несколько напрягает (хотя может быть я просто еще не привык к такой парадигме). Такой проблемы нет при использовании контроллера страниц (для каждого сценария свой скрипт), но мне нужна единая точка входа и соответственно я использую контроллер запросов. Если говорить в терминах MVC, то сейчас я структурирую код таким образом, чтобы одна модель оказалась в одном файле. Но некоторые модели получаются весьма объемными и меня беспокоит то, что из нескольких десятков килобайт загруженного исходного кода модели в конкретном сценарии используется только 10-20%. Или это все ерунда и файловый кеш это полностью нивелирует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2016, 11:52 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
Alibek B., Вэб приложения как-раз рассчитаны на то, что похожие сценарии (или сценарии, где вводом для одного является вывод другого) находятся в одном контроллере. Если, например, придерживаться MVC, то там вообще вся логика связана с моделью находится в том самом одном файле модели (то есть всё что с ней можно сделать лежит в одном файле). Так что нет. Обычно вэб приложения проектируются так, что бы связанный код был в одном файле, и для прослеживания логики работы не требовалось открывать сразу десяток файлов. Вообще на таком уровне ни разу не проводил оптимизацию (никогда не требовалось). Не думаю, что те считанные килобайты кода сильно будут заметны на фоне расхода памяти на нужды интерпретатора. Потому делить стоит, по-моему, не с расчётом на экономию памяти, а с расчётом на экономию времени и сил при поддержке и доработке кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2016, 17:08 |
|
||
|
А подскажите, как лучше распределять код PHP?
|
|||
|---|---|---|---|
|
#18+
Код: php 1. http://symfony.com/doc/current/book/forms.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2016, 19:32 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=39143126&tid=1461298]: |
0ms |
get settings: |
9ms |
get forum list: |
25ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 273ms |
| total: | 461ms |

| 0 / 0 |
