Что лучше CakePHP или чистый PHP для огромного проекта? - PullRequest
3 голосов
/ 04 июня 2009

Я просто знаю чистый PHP, никогда раньше не работал с фреймворком, но мой босс хочет, чтобы я создал наш следующий проект, который будет намного больше, чем все, что мы делали раньше (значит, больше, чем страница, для которой нужно всего 5 скриптов работать, больше похоже на 100 или что-то в этом роде.

Но я не уверен, что смогу реализовать это на чистом PHP, теперь я слышал, что CakePHP может быть полезен для этого (структура и т. Д.). Должен ли я узнать это или просто использовать мой чистый способ PHP?

Ответы [ 8 ]

7 голосов
/ 04 июня 2009

Как уже отмечалось, ваше определение масштабов и сложности этого проекта немного расплывчато, но я отвечу общим наблюдением, что более крупные проекты получают выгоду от более "нисходящей" структуры, чем более мелкие. Я подозреваю, что почти каждый PHP-разработчик на планете начинал со взлома index.php, затем написал код для guestbook.php и так далее. Затем вы понимаете, сколько вы повторяете себя, и начинаете рефакторинг для классов и библиотек.

Рамки - это естественный следующий шаг по сравнению с этим. Термин охватывает целый ряд продуктов; некоторые, которые очень тесно связывают вас с определенным способом работы, а некоторые - скорее библиотека с некоторым свободным передним управлением.

Я бы посоветовал вам выбрать свободную инфраструктуру MVC, которая дает вам хорошую структуру для работы, но не слишком ограничивает вас и должна позволить вам использовать существующие библиотеки. Я не использовал CakePHP - мой опыт работы с Zend Framework, который мне очень нравится (не то чтобы он безупречен). Тем не менее, я работал с другим разработчиком, чтобы сравнить функциональность Cake и ZF, и из того, что я видел, у Cake есть много сильных сторон, которые показывает ZF. Фактически, во многих местах кажется, что вы можете преобразовать код из одного в другой, изменив несколько имен классов.

Я подозреваю, что Кейк вовсе не плохой выбор, но я не могу рекомендовать его, так как не знаю достаточно об этом. З.Ф. Я знаю, сейчас очень хорошо, поэтому я могу рекомендовать это - и документы теперь довольно хороши.

Перед тем, как погрузиться в Cake или ZF, вам понадобится некоторое понимание шаблона проектирования MVC. Книга Джейсона Пота - хорошее, хотя и немного датированное введение, и руководство ZF также довольно сильно.

Кстати, это не выбор между "Cake и Pure PHP". Торт (и ZF) оба "Чистый PHP". Разница между «PHP, который я написал», и «PHP, который кто-то написал» (так что мне не пришлось). Отсюда важно, что вы доверяете качеству этого «чужого кода», что в этом случае вам придется делать по рекомендации и репутации.

Но не просто спрашивайте: "Какой самый лучший фреймворк PHP?" - это все равно что просить лучшего текстового редактора;) И я уверен, что этот ответ (или вопрос) будет помечен как «субъективный» в считанные минуты.

3 голосов
/ 07 июня 2009

Я использую Cake пару лет. Я бы сказал, что если вы раньше не использовали какой-либо MVC-фреймворк, вам обязательно стоит изучить его, чтобы расширить свой кругозор.

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

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

Для начала, я лично думаю, что CakePHP имеет более элегантное решение и более строгие принципы дизайна. CodeIgniter, с другой стороны, кажется более естественным для «чистого PHP-иста», поскольку он менее абстрактен, поэтому его легче подобрать.

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

Но опять же, я действительно не думаю, что ваш проект (по вашему описанию) - это что-то вроде огромного . В качестве приблизительной оценки я бы сказал, что любой проект под 50 тыс. - 100 тыс. Обращений в день может безопасно извлечь выгоду из использования фреймворка.

1 голос
/ 30 августа 2011

Я думаю, что чистый php будет лучшим вариантом, потому что если вы используете фреймворк, вы ограничены его границами,

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

и если вы просто хотите, чтобы работа была выполнена, то вы должны пойти с фреймворком, я не работал над фреймворком, если у вас есть кое-какие знания о торте php, мне это не понравилось, так как я думаю, что связан с некоторыми правилами, я предпочитаю писать свой собственный код, и в случае, если вы захотите выполнять меньше работы в будущем, просто напишите свои собственные правила (это как создание собственной структуры), просто сохраните все, что вы создали, в небольших файлах, а затем используйте их в другом проекте, как один из Преимущество ООП (объектно-ориентированного программирования)

1 голос
/ 05 июня 2009

Использование PHP-фреймворка, такого как cakephp, уменьшит объем кода, который вам нужно написать. В cakephp есть много вещей, которые сэкономят время, например, использование элементов для отображения фрагментов кода, который вы часто используете. Если проект действительно большой, это очень поможет, потому что ваш код будет короче и намного более чистым и организованным. Его будет гораздо проще поддерживать.

1 голос
/ 04 июня 2009

Я согласен с тем, что решение не о том, использовать ли CakePHP, а о том, стоит ли вообще использовать фреймворк. Существует множество фреймворков PHP (Cake, Symfony, Codeigniter, Zend и т. Д.), Каждая из которых имеет свои преимущества и недостатки.

Если бы это был я, я бы использовал фреймворк только для строгого соблюдения некоторых правил MVC ... в большом проекте сохранение структурированных вещей помогает в будущем, когда кто-то другой наследует систему.

Ключевым моментом здесь является то, что вас не затягивают аспекты «генерации кода». Если вы не знаете основы (или не знаете язык так хорошо, как могли бы) в будущем, генерация кода может быть скорее головной болью, чем стоит.

1 голос
/ 04 июня 2009

Я не говорю, CakePHP. Но любая структура подойдет. Основная выгода будет в том, что вы получите структуру папок по умолчанию, скин, языковые рамки (oscommerce и т. Д.). Вы будете настраивать эту структуру. Большинство функций будут / могут быть по умолчанию, такие как отправка электронной почты, создание страницы, создание меню и т. Д.

Вы не сказали, какое приложение вы планируете (возможно, из-за NDA). Более подробная информация, более точные ответы.

0 голосов
/ 04 июня 2009

Все зависит от проекта и заинтересованного лица проекта. Если будет много изменений, либо во время разработки, либо после запуска проекта, фреймворк может быть довольно ограничивающим для кого-то без четкого понимания теорий, лежащих в основе фреймворка (не суждение о программисте, просто утверждение .)

0 голосов
/ 04 июня 2009

Если вы знаете PHP, вы узнаете больше о том, как реализовать обычные шаблоны проектирования, если вы начнете читать код других людей . Чем больше вы читаете, тем больше вы получаете представление о том, как выглядит хороший код и как выглядит плохой код.

Это заманчиво «кодировать свои собственные», потому что вы поймете это более полно, но помните, что вы не будете единственными, кто работает над этим, и однажды вы, возможно, захотите работать что-то еще, и наличие системы, которая широко внедрена и понятна, может облегчить процесс.

Что касается того, является ли cakePHP хорошим выбором для вашего конкретного проекта, трудно сказать, не зная больше, чем будет "больше".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...