2010-06-29 2 views
11

Что-то простое, как CI (это означает обязательную хорошую, легкую, актуальную документацию). Но также с некоторыми дополнительными функциями, чем CI.Структура PHP промежуточной сложности, между CodeIgniter и Yii?

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

Это похоже на то, что CI «убирается с вашего пути», когда это необходимо, и Yii мешает вам, и если вы этого не сделаете, он ломается.

Особенность отсутствующей в CI, которые были бы хорошо иметь в этом новом "промежуточном" PHP рамках:

  • поколение Code (CRUD).
  • Аутентификация.
  • Контроль доступа.
  • Макеты.
  • Виджеты.
  • Easyer/автоматизирован пагинация (как Yii)
  • простых Uri параметров

Где Yii вызывает у меня проблемы:

Это как для каждой маленькой задачи есть некоторые встроенные функциональные возможности (это хорошо), но у ВАС ЕСТЬ использовать встроенную функциональность, иначе бывают плохие вещи. (CI убирается с вашего пути, но делает это слишком много, Yii помогает много, но время от времени болит слишком много, и это заставляет вас просеивать свою документацию, чтобы вы открывали эти функции, без которых вы не можете выполните задачу, которая потребуется в четыре раза меньше, в CI или в приложении без рамки).

Есть ли что-то среднее между ними?

(ASP.NET MVC может быть «этим», но я не знаю языка, поэтому усилия по его изучению будут намного лучше, чем изучение структуры Yii php, поэтому я ищу PHP Framework)

+2

Отличный вопрос. Меня беспокоит та же проблема. У меня было два проекта, так как я узнал Yii, и я решил использовать CI по обоим причинам. Хотя, я не думаю, что это третья структура, которая решила бы эту проблему, но, скорее, с более ориентированными на учебники для Yii. ИМХО, документация Yii слишком грубая и в ней почти нет примеров. –

+0

Посмотрите на Кохану, он основан на CI. слышал большой материал об этом, но ему не хватало внимания. – ggfan

+0

@Milan Babuškov Если бы вы разместили это как ответ, я бы выбрал его: «Хотя, я не думаю, что это третья структура, которая решила бы проблему, а скорее имела бы более практичную ориентацию учебники для Yii ». @ ggfan Я слышал о Кохане и заглянул в нее. Это не так. – snrp

ответ

3

Я нашел несколько ресурсов, которые kindof решить эту проблему, так как они содержат примеры (предложение приемлемо Милан Babuškov помогли сосредоточиться на "решение").

Yii playground - examples Yii cookbook - examples Yii blog tutorial - more examples

PS. есть также google - я нахожу решение (и примеры) самым быстрым способом - ex: implement + pagination + yii

1

вы могли бы попробовать kohana (особенно когда с ХИ)

+1

Kohana на самом деле не предоставляет функции OP, спрашивающие о (хотя это * отличная основа). – notJim

+0

Kohana имеет меньше документации, чем Yii, и документы. не поддерживаются хорошо. Он улучшает CI, но в основном фиксирует материал во внутренних компонентах и ​​не добавляет много новых функций. –

+0

@ nathan Да, я понимаю, что вы пытаетесь сказать. Kohana (unfortuntely) - это точный oposite of ci, потому что самая сильная точка ci - это не его черты, а его превосходная, краткая, наполненная примерами документация (где, поскольку сильная сторона yii - это ее особенности, но не так хороша документация). На самом деле CI критикуется за некоторые из его «функций», но по-прежнему очень популярен по какой-то причине ... И причина в документах. Я проверил кохану (снова), но ... Проблемы, которые у него были до сих пор, все еще там. – snrp

4

Я фанат CakePHP. Я чувствую, что у вас есть спецификации, которые вы предоставили. Если вы хотите что-то более передний край вы посмотрите на Lithium

+1

Для лития требуется PHP 5.3+, поэтому он может быть менее доступным. У CakePHP есть некоторая обратная совместимость, я полагаю, но не так сильно, как CodeIgniter, который все еще поддерживает PHP 4. –

+1

Я считаю, что CakePHP будет еще хуже, чем Yii в отношении «вы должны делать все на своем пути», о котором идет речь. –

+3

@ Джейсон, посмотрите на свое первое предложение: «Я фанат CakePHP»? Это должен быть очень убедительный аргумент для голосования? Может быть, если автор Yii напишет это;) Второе предложение ... ну, скажем так, я не согласен. Используя все три структуры на больших проектах, CakePHP имеет те же проблемы и даже хуже, чем Yii. Да, у него есть спецификация. проблемы, но не решения. Кроме того, оригинальный автор не может даже понизить, у него только 11 репутации. –

1

Вы должны проверить сообщество CI может, некоторые из этих расширений, возможно, были написаны кем-то другим (я помню, проверку подлинности и компоненты/Widgets где-то)

Symfony стоит проверить. Мне лично это не очень нравится, потому что они выбрали Prototype для jQuery для своих функций ajax, что очень раздражает, когда вы используете jQuery.

Lithium возможно, хорошо проверить. Тем не менее, это только php 5.3, и вам нужно быть очень осторожным, чтобы эта версия PHP поддерживалась на сервере, на котором будет развернут сайт.

0

Для чего стоит, если вы ищете PHP-платформу, похожую на ASP.NET MVC, то я думаю, что Prado - это самая близкая вещь, которую вы найдете.

0

Вы можете взглянуть на Qcodo/Qcubed. Они легко подбираются и предлагают генерацию кода/ORM

Простой способ создания форм в режиме mvc.

1

Смотреть этот список для хорошего comparisson:

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP_2

С личной точки зрения, я хотел бы пойти с Symfony из-за его

  • богатых возможностей и
  • большой интеграции с многие другие уже связанные компоненты (Doctrine, Swift Mailer, ..),
  • хороший (но вначале комплекс) код gen чество, которое производит действительно годные к употреблению код, чтобы вы запущен при быстро
  • мощного использование шаблонов (что будет точкой вы упоминаете под «раскладками)
  • много разного, мощный plug-ins, в том числе аутентификации & контроля доступа (он также имеет plug-in to get jQuery support)
  • один из лучших tutorials, что я видел с каркасом

Даунсайд является

  • более сложная структура,
  • IMO проводная структура файл,
  • довольно грязный API documentaion по сравнению с обучающей

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

2

Я использовал как CI, так и Yii (по моим собственным проектам, если это имеет значение). CI был моим первым знакомством с MVC, и я нашел его легким, потому что он позволил мне использовать любую дрянную структуру и код. Я написал два полных сайта в CI (www.insolvencynews.com и www.thebigeat.com, если вы хотите увидеть сложность.)

Я посмотрел на CakePHP, но получил NOWHERE.

Затем я перешел к Yii, и, как и вы, я нашел его довольно жестким и жестким. Но я тогда обнаружил, что это было настолько мощным и расширяемым, что я был намного более эффективным. Когда мне нужно было добавить несколько новых функций к старым сайтам CI, было быстрее переписать все сайты на Yii, чем закодировать дополнительные функции в CI.

Я не могу рекомендовать рамки в середине, но я могу порекомендовать придерживаться Yii. Когда вы говорите, что Yii мешает, можете ли вы привести пример?Глядя на материал БД (в порядке возрастания зависимости от Yii):

  1. Вы можете использовать код с использованием основных функций MySQL MySQL.

    $result = mysql_query($sql);

  2. вы можете использовать DB слой абстракции Yii в.

    Yii::app()->db->createCommand($sql)->queryAll();

  3. Вы можете использовать Yii в ActiveRecord:

    Takeaway::model()->findAll();

+3

Вы не можете просто пробить какой-то код и получить его. Вы должны использовать всевозможные сложные методы. Ex: «вручную» реализует вкладки jquery-ui. Сначала вы должны «открыть» функцию Yii :: app() -> clientScript-> registerScriptFile(). Но если вы не знали, что это существует в первую очередь, как вы его «обнаружите»? Когда вы выполняете поиск в Google, как заставить его работать. Я не думаю, что это объясняет где-нибудь в документации, как загрузить jquery, который «связан» с yii, и который используется для разбивки на страницы ajax и т. Д., Или что вы даже можете или можете судить, чтобы сделать такую ​​вещь. – snrp

+0

Я слышу вас - документация неадекватна. У вас все еще есть два варианта с Yii: Кодируйте свою обработку javascript на PHP или просто пропустите теги