Я начинающий php-разработчик, который пытается создать социальную сеть для моих школьников. Зная, что в школе уже работают более 1000 учеников, у меня должен быть план по расширению / масштабированию кода, который я пишу.
Раньше это был просто LAMP Stack, сейчас, как я вижу, современная веб-разработка — это нечто большее, чем я, и я действительно растерялся в том, какие технологии использовать и как их использовать для создания масштабируемого приложения. Я надеюсь разделить это приложение на 3 слоя.
Здесь мне нужна помощь, хорош ли этот подход к масштабируемому приложению? где я могу улучшить? Любые объяснения, ссылки для дальнейшего чтения будут высоко оценены.
Добро пожаловать в ТАК. Я не могу придумать какой-то конкретный справочник, на который можно было бы направить вас (хотя Руководство по PHP это хорошее место, если вы застряли на том, как сделать что-то конкретное). Я бы посоветовал прочитать несколько результатов при поиске «Начало работы с MVC в PHP» и отметить, с чем они согласны. Тем не менее, посмотрите на то, что я говорю ниже (а затем игнорируйте это столько, сколько пожелаете;)).
Во-первых, вы умнее, чем многие, разбираетесь в масштабируемом дизайне перед запуском в проект …
Я рад видеть Phalcon в вашем списке уже есть. Однако, как предложил DevDonkey, сначала нужно начать с чего-то более простого (Phalcon очень мощный, но чтобы действительно разобраться с ним, вам нужно хорошо разбираться в PHP, особенно в объектно-ориентированном программировании).
Если вы совершенно новичок в PHP …
… попробуйте создать небольшое приложение (таблица продуктов, просмотреть / добавить / отредактировать / удалить функциональные возможности) и изучить основы языка таким образом, как этот ответ предлагает. Все пойдет не так, и вы обнаружите много головных болей, когда вы захотите изменить одну функцию, и это повлияет на все остальное, но это поможет вам понять важность …
MVC дизайн
По твоему вопросу я вижу, ты хотя бы слышал об этом. Это действительно то, где лежат слои вашего приложения:
Использовать рамки?
Использование хорошего фреймворка может сделать ваше приложение более надежным и быстрее создавать. Но использование фреймворка без понимания будет разочаровывающим, медленным и, возможно, приведет к худшему коду, чем если бы вы не использовали его для начала (поскольку вы используете хаки, чтобы обойти части фреймворка, которые вы не понимаете). Мой любимый сейчас Phalcon но, как относительный новичок в PHP, я бы предложил что-то вроде CakePHP хотя оба Laravel а также Symfony также популярны.
Резюме
Слои, которые вы выложили в своем вопросе, хороши, но я бы разделил их немного по-другому (учитывая, что MVC — это 3 слоя)
Первый проект (для CakePHP)
Этот блог учебник это хорошее место для начала, если вы решите использовать CakePHP.
Начало работы с Phalcon
Phalcon более мощный / универсальный, но чтобы начать с ним, я чувствую, что вам нужно быть лучшим PHP-разработчиком, чем вы, чтобы начать работать с чем-то вроде CakePHP. Не торопитесь, чтобы понять каждую новую концепцию с Phalcon, особенно Внедрение зависимости.
Даже используя CakePHP в течение последних 2 лет и будучи знакомым с шаблонами MVC и PHP, я все же пробирался через все 7 учебные пособия в Фалконе.
Сказав это, моя любимая вещь о Фальконе, что это сильно отделен — так что довольно легко (через некоторое время) заменить его частями своими собственными расширениями, если он не совсем делает то, что вы хотите.
Примечание о Phalcon: Он не так популярен, как многие другие фреймворки (хотя популярность растет), поэтому вам, возможно, придется потратить некоторое время на копания, когда вы застряли. Тем не менее, документы улучшаются все время и Форум очень активен К сожалению, количество ответов на вопросы об этом в StackOverflow все еще мало по сравнению со многими другими платформами.
Других решений пока нет …