У меня есть относительно простое приложение, работающее с некоторыми базовыми функциями, которые я создал как часть проекта. Теперь я хотел бы развить это и добавить еще несколько сложных функций, включая вход в систему.
Код получился довольно сложным и написан на простом php, поэтому весь код презентации смешан с логикой. Я решил, что прежде чем идти дальше, я хотел бы перефакторить его, чтобы отделить это, чтобы его было легче поддерживать и добавлять. Я изучаю MVC и думаю, что так и должно быть.
Я решил попробовать фреймворк zend и потратил некоторое время, пытаясь разобраться с ним, однако я обнаружил, что кривая обучения чрезвычайно крута, поскольку у меня нет объектно-ориентированного опыта.
Кто-нибудь может порекомендовать другой фреймворк или вариант? Я подумываю о том, чтобы взглянуть на торт, основываясь на чтении других сообщений на этом форуме, но я приму любое руководство - мои «требования» следующие:
Все предложения приветствуются!






Я лично использовал Symfony. Это очень полный и хорошо поддерживаемый фреймворк, с которым относительно легко начать работу. Мой опыт работы с фреймворками показывает, что для более простых проектов они могут быть довольно обременительными.
Умный шаблонизатор.
Как очень красноречиво сказано здесь уже, фреймворки хороши до тех пор, пока вы не захотите делать что-то, для чего они не подходят, плюс они могут абстрагировать язык до точки, когда вы эффективно их изучаете, а не язык, на котором кодируете.
Я бы посоветовал вам свернуть свой собственный. Если вы понимаете принципы MVC и обладаете средними знаниями PHP, это не будет слишком сложно (есть уженесколькоуказателивокруг), плюс вы выйдете из этого намного дальше, чем если бы вы » d просто использовал чужой.
Люди на моем рабочем месте клянутся Cake. Он действительно кажется довольно гибким и, безусловно, быстро развивающимся, как только вы его узнаете. Тем не менее, я бы повторил da5id и сказал, что всегда безопаснее создавать свои собственные - вы точно знаете, как это работает, вы получаете хороший опыт работы с PHP (вместо опыта с Cake), и вам не нужно тратить часы на борьбу с ним. чтобы заставить его делать то, что вы хотите, или прочитать о том, как его использовать в первую очередь.
Между прочим, я совершенно не уверен, что «MVC» действительно существует как парадигма в PHP - V и C настолько безнадежно переплетаются в большинстве случаев, потому что форма является представляет собой представление.
Создайте себе генератор кода, который будет выводить классы PHP на основе таблиц вашей базы данных. Если вы действительно умны, вы можете заставить его проверять базу данных на предмет взаимосвязей и даже создавать соединения в PHP. Затем создайте второй набор классов, каждый из которых наследует от табличного класса, что позволяет настраивать его поведение. Положитесь на эти второстепенные классы в своем бизнес-кодексе. (Это форма паттерна Generation Gap)
Обезжиренный не только является фреймворком, но и имеет собственный механизм создания шаблонов, который выходит за рамки простой замены переменных. Он позволяет вызывать функции и методы класса / объекта вместе со знакомыми PHP-подобными выражениями.
Спасибо за информацию da5id, указатели дали мне много пищи для размышлений, и я работал над своей собственной настройкой. Абстракция языка была тем, что сделало это для меня - я почувствовал, что изучаю что-то совершенно новое