Облегчение фреймвёрка

Приветствую комьюнити фреймвёрка Yii!

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

До сегодняшнего дня, для подобных задач, в качестве фреймвёрка я юзал symphony-cms, однако, поскольку не каждый хостер имеет установленную php 5.2 (особенно это касается серверов на CentOS), libxslt и т.д. пришлось искать какие-то альтернативы, из модных что-ли, в данный момент… таким образом я решил попробовать поработать с Yii Framework, рекомендованным многими, как наиболее подходящий для WEB 2.0 приложений.

Последние несколько лет, из фреймвёрков, я активно использовал Zend и symfony-project, однако, в случае небольших проектов, реализуемых на протяжении нескольких дней - юзал свой. Сейчас же, свой движок, всё-таки решил заменить каким-нибудь более известным, с уже сформировавшимся коммунити, и следовательно - используемым ещё кем-то )

К чему такое количество букв: Yii меня устраивает в принципе всем (насколько я смог его понять прочитав сегодня официальный ман yii-guide-1.1.4.pdf), кроме той же причины, из-за которой я отказался от Зенд и Симфони для небольших проектов - много всего лишнего для фреймвёрка для небольших задач.

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

в идеале, мне нужны следующие подсистемы ядра движка:

  1. собственно связь ФК, раутинг, контроллеры/экшины

  2. модель

  3. въюхи (но без виджетов)

  4. кэширование

  5. разумеется системные лоадеры и резолверы

и собственно это всё. То есть, мне не нужен уровень абстракции БД, i18n, утилиты, валидаторы, всё то, что в vendors (я использую свои зависимости) различные пейджинаторы и прочее; мне просто нужно запустить модель контроллером и после дёрнуть соответствующую въюху )

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

Спасибо.

Фреймворк весит менее 10мб, без необходиомсти ненужное не подгружает. Стоит ли овчинка выделки? :)

Вы как бы хотите противоположные вещи. Хотите отойти от своей разработки и перейти на "более извесный, с уже сформировавшимся коммунити, и следовательно - используемым ещё кем-то". Но перейти довольно странным способом, создав свою сборку на основание кода Yii, тем самым лишившись поддержки сформировавшегося коммуните (как коммунити будет помогать решать проблемы с вашей сборкой?) и следовательно придя к тому с чего начинали - не много людей будут использовать такую сборку. Я уже не говорю про проблему обновления.

Контроллер


class MyController extends CController

{

    public function actionIndex()

    {

        // запустить модель

        $model = new MyModel;

        

        // дёргаем въюху

        $this->render('index',array('data'=>$model->runMyModel()));

    }

}

Модель


class MyModel extends SomeClasses

{

    public function runMyModel()

    {

        return "От сердца отрываю <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' /> ";

    }

}

Вьюха


<?php

// ни в коем случае не используем $this->widget('name');

?>


<h1>I am въюха</h1>


<p>Кто посмел меня тревожить?</p>


<p><?php echo ($data) ? 'Ничего, никому не покажу <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/tongue.gif' class='bbc_emoticon' alt=':P' />' : 'Для тебя ничего нет.' ?></p>

И на последок, вот это ман для самокрутки.

автору нужен просто MVC каркас без доп. функционала фреймворка?

Если вам не нужен скаффолдинг, валидаторы и тп, вы можете вручную удалить эти папки и классы из поставки. При этом никто не может гарантировать что во время работы не вылезет какая-то странная ошибка ;)

Yii действительно работает очень оптимально и ничего лишнего не загружает, так что "чистка кода движка" даст разве что небольшую экономию в дисковом пространстве.

Если не нужен уровень работы с БД, можно использовать CFormModel вместо CActiveRecord, хотя active record по-моему как раз одна из наиболее полезных возможностей yii.

Ну или может посмотреть что-нибудь совсем уж минималистичное, типа этого.

Разработчики сами рекомендуют не злоупотреблять CActiveRecord в целях повышения производительности, ссылка.

Без jQuery, локализаций, zii расширений, вендоров и консольного генератора кода фреймворк весит менее 1.7 мб.

Кстати сразу можно выкинуть framework\vendors\htmlpurifier\HTMLPurifier.standalone.php - минус 0.5 мб, да и эта библиотека очень редко применяется, покрайней мере в моей практике.

Генератор кода я сразу выкидываю, а вот отказыватся от стандартных zii и jQuery не хочу, т.к. с ними админку проще делать. В таком виде фреймворк весит 3.6 мб.

Если сильно нужно, можно удалить папку framework\vendors - это ещё -1 мб.

самый простой путь…

отказаться от фреймворка, вы сами себе противоречите, ИМХО

Как вариант - прогнать код приложения, создать список используемых классов, минимизировать код, убрать include, require и слить в один файл.

Зачем такие мучения. Фреймворк на lazyload патерне, лишнее он просто не подгрузит. К тому же на практике это "лишнее" буквально через 2-3 месяца становится чуть ли не самым нужным.

Yii очень сбалансирован по включенному в него функционалу.

Это как крайний способ сделать Yii еще быстрее и легче.

Это очень лажовый способ сделать Yii легче. Да и не способ - всеравно не сделаешь таким способом.

Лучше разобраться с LazyLoading по нормальному чем тупо удалять файлы из дистрибутива.

А что "yiilite.php" уже отменили? :-))))

http://yiiframework.ru/doc/guide/ru/topics.performance

Не пойму… Что вы этим добьетесь? -6метров диск. пространства? И смысл?? Вам нужна скорость? Выполните рекомендации которые описаны в документации… Простой проект таким образом можно подогнать до выполнения за 0.001