Минимальный Yii
Минимальный Yii
Главное пожелание: хочеться чтобы в качестве варианта Yii был его минимальный вариант, как база для наполнения по необходимости нужными компонентами.
Сразу оговорюсь речь не о том как уменьшить общий размер фреймворка (согласно статье http://rmcreative.ru/blog/post/udalenie ... lov-iz-yii).
Сейчас базовый минимум фреймворка не такой уж и маленький по размеру, к примеру только yiilite.php весит порядка 280 кб.
Пример:
Я делаю отдельным Yii приложением веб-сервис, единственная его задача это вызов метода сервиса и возврат результата пользователю. И тут я хочу, чтобы ненужные мне компоненты(возможности фреймворка) впринципе не существовали в нем пока я сам их не добавлю в базовый минимальный фреймворк.
К примеру массив private static $_coreClasses класса YiiBase содержит много ненужных классов для меня, также есть и объявления ненужных мне методов в классах(public static function t(), прочие). Сами классы естественно не грузяться без необходимости, но размер базы фреймворка от этого больше, и серверу все равно нужно прочитать тот yiilite.php.
Если можно небольшую инструкцию по чистке базы фреймворка(к примеру все что я делаю это в действии контроллера echo "1", какой минимум мне нужно оставить чтобы этот контроллер продолжал работать?). Спасибо.
Сразу оговорюсь речь не о том как уменьшить общий размер фреймворка (согласно статье http://rmcreative.ru/blog/post/udalenie ... lov-iz-yii).
Сейчас базовый минимум фреймворка не такой уж и маленький по размеру, к примеру только yiilite.php весит порядка 280 кб.
Пример:
Я делаю отдельным Yii приложением веб-сервис, единственная его задача это вызов метода сервиса и возврат результата пользователю. И тут я хочу, чтобы ненужные мне компоненты(возможности фреймворка) впринципе не существовали в нем пока я сам их не добавлю в базовый минимальный фреймворк.
К примеру массив private static $_coreClasses класса YiiBase содержит много ненужных классов для меня, также есть и объявления ненужных мне методов в классах(public static function t(), прочие). Сами классы естественно не грузяться без необходимости, но размер базы фреймворка от этого больше, и серверу все равно нужно прочитать тот yiilite.php.
Если можно небольшую инструкцию по чистке базы фреймворка(к примеру все что я делаю это в действии контроллера echo "1", какой минимум мне нужно оставить чтобы этот контроллер продолжал работать?). Спасибо.
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Минимальный Yii
Возможно стоит вообще отказаться от фреймворка, если Вас так сильно смущает лишний функицонал? Лично я не вижу в этом ничего плохого.
Twitter: @timlar_ua
Re: Минимальный Yii
Для общего приложения нет ничего плохого, а для быстродействия сервиса? если идет много обращений. Также может касаться бекенд AJAX обработчиков.
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Минимальный Yii
Фреймворк устроен так, что если какой-то функционал в текущий момент времени не используется, то он не подключается.
Twitter: @timlar_ua
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Минимальный Yii
Как вариант, можете посмотреть ч/з xhprof, что подключается, сколько раз вызывается, сколько памяти и времени кушается. Это все можно посмотреть там же в графическом виде, для наглядности.
Twitter: @timlar_ua
Re: Минимальный Yii
Я привел примеры, public static function t() в YiiBase, грузиться или нет?
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Минимальный Yii
Я говорил в более широком контексте. В данном случае - грузится, но это необходимый минимум. Если в приложении нет интернационализации, то можно вручную убрать не нужное. Но я не думаю, что будет существенный выигрыш в производительности.
Twitter: @timlar_ua
- Svyatov
- Сообщения: 459
- Зарегистрирован: 2010.08.12, 14:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Минимальный Yii
Это экономия на спичках. Даже если вырезать все-все лишнее, то на современном сервере вы выиграете 0.000001 секунду. Или у вас сервис на 386 проце с 16 мегами оперативки?
Re: Минимальный Yii
Да вот Yii может быть чуть более конфигурируемым в этом плане, как маленькая оптимизация для Yii 2.0 может и пойдет.Timlar писал(а):Я говорил в более широком контексте. В данном случае - грузится, но это необходимый минимум. Если в приложении нет интернационализации, то можно вручную убрать не нужное. Но я не думаю, что будет существенный выигрыш в производительности.
Свою возможную ошибку я тут понял, это видимо не тот случай когда нужно использовать yiilite.php, и если в нем 10,000 строк кода, то при сокращении его вдвое врядле мы получим такой маленький выйгрыш как упомянуто выше.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Минимальный Yii
Вообще да, в этом случае yiilite лучше не использовать т.к. это сборная солянка для полновесных приложений.
Нравится Yii? Давайте сделаем его лучше!.
Re: Минимальный Yii
А в чем вообще проблема? Основная проблема - большое количество читаемых с диска файлов и последующая компиляция их в байткод php, и все это в свою очередь должно быть закэшированы, более того, при правильных настройках системы кэширования весь набор файлов, который необходим для выполнения echo 1 будет собран, транслирован в байткод и закэширован в памяти и все это будет очень быстро работать. Скорость работы в урезанном и не урезанном виде практически не будет отличаться, кроме первого запуска, вы можете немного выйграть памяти на том, что порезанный байткод будет занимать существенно меньше места чем не порезанный, но размеры экономии просто незначительны на фоне современных объемов памяти даже на серверах начального уровня.
В общем как писали выше, ваша экономия будет 0.0000000001 секунды и ради нее нет смысла замарачиваться даже на очень большом трафике. Используйте fast cgi и fpm php и ваши проблемы будут решены. Если для вас все таки имеют значения 0.0000000001 секунды, то у вас либо совсем дохлое железо, либо огромная посещаемость, в первом случае надо железо наращивать, чудес не бывает, во втором случае для таких простеньких задач отказываться от использования фреймворка.
В общем как писали выше, ваша экономия будет 0.0000000001 секунды и ради нее нет смысла замарачиваться даже на очень большом трафике. Используйте fast cgi и fpm php и ваши проблемы будут решены. Если для вас все таки имеют значения 0.0000000001 секунды, то у вас либо совсем дохлое железо, либо огромная посещаемость, в первом случае надо железо наращивать, чудес не бывает, во втором случае для таких простеньких задач отказываться от использования фреймворка.
Re: Минимальный Yii
Может у кого ни будь есть минимальная версия Yii?
Я имею ввиду что со всеми компонентами, не урезаная, но без того, что не нужно на хостинге. Типа тесты и генератор кода.
В принципе по статье Сэма всё удалил, но не могу удалить комментарии.
Если не жалко, киньте архивчик с необходимым)
Я имею ввиду что со всеми компонентами, не урезаная, но без того, что не нужно на хостинге. Типа тесты и генератор кода.
В принципе по статье Сэма всё удалил, но не могу удалить комментарии.
Если не жалко, киньте архивчик с необходимым)
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Минимальный Yii
Тесты и генератор никогда не вызываются и не подключаются, если вы их не используете. Максимум, что вы потеряете — пару мегабайт места на диске и пять минут в загрузке по FTP.
Нравится Yii? Давайте сделаем его лучше!.
Re: Минимальный Yii
У меня он заливается на фтп около 20-30 минут(полностью весь yii). вот и хочу уменьшить дистрибутив чисто для хостинга, не для разработки
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Минимальный Yii
Не вижу тут особой проблемы: поставили заливаться, пошли чайку попили. Это же одноразовое действие.
Нравится Yii? Давайте сделаем его лучше!.
Re: Минимальный Yii
Ну а всё же? Зачем мне генератор? Зачем тратить лишнее место на хостинге, причём всё бестолку.
Re: Минимальный Yii
Думаю проблема в количестве файлов, FTP сервер хостера скорее всего просто после запроса заливки очередного файла тупо ставит таймаут, по истечению которого начинает реально грузить. Если есть возможность, рекомендую залить все архивом и разархивировать уже там. У ваших PHP скриптов должен быть доступ на запись на диск, иначе это очень странный хостинг, если доступ есть, напишите короткий PHP скрипт который вызовет разархивацию от своего имени. В крайнем случае, это можно попросит сделать админа хостинга, а вообще вы фреймворк заливаете раз в несколько месяцев, подождать один раз 20 минут это большая проблема?У меня он заливается на фтп около 20-30 минут(полностью весь yii). вот и хочу уменьшить дистрибутив чисто для хостинга, не для разработки
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Минимальный Yii
Вообще сейчас для Yii2 обсуждается концепт пакетов. Возможно, можно будет выбрать, в каком виде будет фреймворк: голый или с определёнными плюшками.
Нравится Yii? Давайте сделаем его лучше!.
Re: Минимальный Yii
В идеале это подобие Build custom download для jQuery UI (что видимо черезчур), но и достаточно по-моему сделать 2й голый вариант для скачки фреймворка.Sam Dark писал(а):Вообще сейчас для Yii2 обсуждается концепт пакетов. Возможно, можно будет выбрать, в каком виде будет фреймворк: голый или с определёнными плюшками.
Вопросы про Yii2
Подскажите, сильно ли будет отличаться вторая версия от первой (1.1.8)? Когда планируется выход второй версии (не раньше какой даты)?Sam Dark писал(а):Вообще сейчас для Yii2 обсуждается концепт пакетов. Возможно, можно будет выбрать, в каком виде будет фреймворк: голый или с определёнными плюшками.