А вот я бы посоветовал игнорировать @NetStar и @sarahk в этом вопросе.
Эти «структуры» и готовые ответы, как правило, используются людьми, не имеющими квалификации для непосредственной работы на принимающем языке.
БОЛЬШИНСТВО вещей, которые они делают, требуют ненужных накладных расходов, НЕ упрощают процесс, и большинство вещей, которые они делают «для вас», не должны занимать у вас больше времени, чем просто научиться напрямую использовать базовые языки.
Все, что они делают, это заставляют вас использовать определенные модели программирования (например, MVC), которые даже не соответствуют основному языку (PHP) или задаче (линейная обработка пользовательских запросов), добавляют больше кода, который вы, вероятно, даже не собираетесь запускать, замедлите процесс разработки и наложите что-то еще, что нужно изучить, поверх основ, которые вам все равно нужно будет изучить, чтобы делать то, что эти системы не делают «из коробки». ХУЖЕ, они часто мешают вам изучить базовую систему или продвигают плохие/неправильные методы, которые приводят к целому ряду сбоев.
УДИВИТЕЛЬНО, насколько мучительно и бессмысленно запутаны эти различные системы, пытаясь сделать что-то «проще», не зная при этом, насколько просты задачи, не говоря уже о полном незнании того, как правильно реализовать любую из них.
Модель MVC является прекрасным примером этого.
Хотя я приветствую разделение проблем, которое они вносят в таблицу, «парадигма», которой они следуют, не соответствует тому, как PHP получает, обрабатывает или выводит запросы, или базовой модели HTTP.
Конечным результатом является использование в десять раз больше кода, чтобы «протолкнуть» концепцию дизайна там, где она не подходит.
Эти «фреймворки», такие как CakePHP и Laravel, представляют собой 3-фунтовый молоток, необходимый для того, чтобы вставить квадратный колышек в это круглое отверстие.
Конечным результатом является то, что, хотя вы можете обмануть себя, думая, что работа была проделана хорошо и вы приложили мало усилий, вы плохо подготовлены к тому, что что-то пойдет не так, когда вам нужно что-то, что оно не делает «из коробки», и увеличили ваши расходы на хостинг, расходы на обслуживание и фактически усложнили работу.
Это ловушка, известная как «ложная простота».
Но, честно говоря, я занимаюсь программированием уже четыре десятилетия и могу с нуля писать вещи, на создание которых обычно у разработчиков, использующих «фреймворки», уходит в два раза больше времени.
Некоторые разработчики сравнивают эти «фреймворки», готовые CMS и другие подобные ярлыки с тренировочными колесами, я делаю еще один шаг вперед.
Это трехколесный велосипед.
Если это все, чему вы когда-либо научились ездить, вы никогда не будете ездить так быстро и не наденете штаны большого мальчика, чтобы кататься на велосипеде.
Если вы собираетесь все делать правильно, вам придется несколько раз упасть.
Хотя, как правильно заметил @NetStar, в любом случае вам предстоит долгий, ДОЛГИЙ путь, если вы полный новичок.
Это не то – и не должно быть – тем, что можно освоить за короткий период времени.
Чем больше вы торопитесь, чем больше вы пытаетесь срезать путь, тем больше вы попадаете в «иллюзию легкости», тем дороже это будет стоить вам в долгосрочной перспективе и тем быстрее вы потерпите неудачу.
Часть того, почему мне не нравятся «ярлыки», которыми являются фреймворки.
Вы обходите стороной знания, которые ДЕЙСТВИТЕЛЬНО должны иметь, приобретая вредные привычки, и часто в конечном итоге оказываетесь в совершенно неправильном мышлении, даже не позволяющем правильно выполнять работу.
Я скажу, что на серверной части все не так плохо с такими вещами, как Laravel, Drupal, CakePHP и т. д., как на внешней стороне, хотя и с отупляющими, тупыми, слабоумными, умственно ослабленными HTML/CSS-фреймворками (bootstrap, w3.css, mootools и т. д.), созданные невежественными некомпетентными недоумками и используемые ими же. Тем не менее, они попадают в ту же ловушку и ошибочное мышление, когда попытки упростить задачу только усложняют получение качественного результата.
Опять же, потому что в большинстве случаев люди, СОЗДАЮЩИЕ эти «фреймворки», на самом деле не знали достаточно о базовых языках, чтобы даже знать, было ли то, что они делали, на самом деле проще, легче или даже правильно.
Вы попадаете в ситуацию с ложным предположением, настаиваете на том, чтобы придерживаться этого ложного предположения, даже несмотря на то, что факты против него накапливаются, и неудивительно, что конечный результат разваливается лицом вниз.