ручная работа(без Composer)

Обсуждение документации второй версии фреймворка. Переводы Cookbook и авторские рецепты.
3ton
Сообщения: 61
Зарегистрирован: 2009.06.30, 16:35

ручная работа(без Composer)

Сообщение 3ton »

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

Интересует возможность собрать приложение ручками, не готовыми решениями через Composer, а именно так как это делалось в первой версии: мы делаем скелет приложения, размещаем папку с нужной версией фреймворка в нужном нам месте, ссылаемся на него из index.php и у нас все работает. То же касательно расширений-мы должны сами их заливать и настраивать и никакой возможности подтянуть их автоматом или сменить версию.

Необходимо чтоб отсутствовало всякое присутствие всех ненужных нам папок в vendor кроме yiisoft и необходимых продукту заказчика расширений. Так же необходимо понимание как использовать свои расширения для внутренних корпоративных решений исключив их попадание в инет и последующую установку через composer(вспоминаем что его у нас не должно быт).

Убедительная просьба не переубеждать пользоваться composer'ом, это основной момент при выборе фреймворка для перехода с первой версии которая вполне подходит за исключением понимания что с появлением второй версии, работа над первой вступает в фазу затухания.

Кстати, если я верно понял, пропал функционал WsdlController'a и это очень плохо, так как система состоит из backend части и большого количества функциональных частей(клиентские решения на разных CMS, телефония, билинг и прочие провайдеры своей разработки) которых связывает одно - общение через авторизованиый WSDL
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: ручная работа(без Composer)

Сообщение samdark »

Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: ручная работа(без Composer)

Сообщение samdark »

Выкидывать Composer не рекомендую (он умеет работать с приватными репозиториями). Огребёте.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ручная работа(без Composer)

Сообщение zelenin »

лучше понять как можно композер использовать, чем пытаться работать без него.
3ton
Сообщения: 61
Зарегистрирован: 2009.06.30, 16:35

Re: ручная работа(без Composer)

Сообщение 3ton »

если не ошибаюсь это расширение от стороннего разработчика, а так как у нас нет времени-возможности провести его аудит, использовать его не планируем, да и логика его работы отличается от работы в первой версии(если я все верно понял)
Sam Dark писал(а):Выкидывать Composer не рекомендую (он умеет работать с приватными репозиториями). Огребёте.
я думаю глупо было завязывать весь фремворк на composer, логичнее было это сделать в виде фичи... ;)
zelenin писал(а):лучше понять как можно композер использовать, чем пытаться работать без него.
конкретно в данном вопросе дело не в понимании/непонимании, а в том что он для нас лишний элемент...
это как устанавливать Linux сервак с иксами и работать из под иксов, а не из консоли - суть мне кажется понятна
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ручная работа(без Composer)

Сообщение zelenin »

3ton писал(а): я думаю глупо было завязывать весь фремворк на composer, логичнее было это сделать в виде фичи... ;)
конкретно в данном вопросе дело не в понимании/непонимании, а в том что он для нас лишний элемент...
это как устанавливать Linux сервак с иксами и работать из под иксов, а не из консоли - суть мне кажется понятна
верная аналогия такая: "это как работать с сервером базы данных, хотя можно данныех хранить во flat files. В данном случае БД лишний элемент. Можно сделать в виде фичи."
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: ручная работа(без Composer)

Сообщение samdark »

yii2-soap-server — стороннее расширение. Это порт с 1.1, логика вроде была та же. Мы отсматривали код, всё нормально. По крайней мере было когда у нас был RC.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: ручная работа(без Composer)

Сообщение samdark »

Завязаться на Composer, как по мне, прекрасная идея. Расширения те же ставить или сторонний код использовать намного проще, чем в 1.1: прописал одну строчку в composer.json, запустил команду и всё. Можно пользоваться. Никаких require, никаких конфигов...
3ton
Сообщения: 61
Зарегистрирован: 2009.06.30, 16:35

Re: ручная работа(без Composer)

Сообщение 3ton »

Sam Dark писал(а):Никаких require, никаких конфигов...
1. не помню чтоб в Yii1 я использовал require
2. конфиги как раз нам очень нужны для расширений, это позволяет указать настройки на расширения для фронта, а так же настройки работы их бэкендов с "супербэкендом"
3ton
Сообщения: 61
Зарегистрирован: 2009.06.30, 16:35

Re: ручная работа(без Composer)

Сообщение 3ton »

кстати очень интересна ситуация с увеличением выделяемой памяти под "Hello world!" - на сколько больше тратится из-за использования composer, bower, npm, cebe (я например никогда не ставлю LAMP сборки, а ставлю лишь необходимые мне пакеты по отдельности - не люблю лишний и не используемый мусор, тем более что этот фреймворк выбран для работ под нагрузкой отчего даже не всегда в целях экономии памяти можем ActiveRecord пользоваться)

так же не понятно назначение папок
bin
ezyang
fzaninotto
phpspec

все папки приведены из архива который качается с официального сайта для установки без компостера
Последний раз редактировалось 3ton 2014.11.06, 11:43, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ручная работа(без Composer)

Сообщение zelenin »

3ton писал(а):кстати очень интересна ситуация с увеличением выделяемой памяти под "Hello world!" - на сколько больше тратится из-за использования composer, bower, npm, cebe (я например никогда не ставлю, а ставлю лишь необходимые мне пакеты по отдельности - не люблю лишний и не используемый мусор, тем более что этот фреймворк выбран для работ под нагрузкой отчего даже не всегда в целях экономии памяти можем ActiveRecord пользоваться)
это доказывает причину, по которой вы отказываетесь от композера - вы не знаете для чего он и как работает.

Это менеджер зависимостей, позволяющий автоматически устанавливать библиотеки, и генерирующий автозагрузчик. Разница между ручным и автоматическим (через композер) добавлением библиотек лишь одна - автоматизм (и вытекающая из этого экономия времени).
Соответственно, композер и все, что он устанавливает, увеличивает память не более чем те же пакеты, установленные в ручную.
3ton
Сообщения: 61
Зарегистрирован: 2009.06.30, 16:35

Re: ручная работа(без Composer)

Сообщение 3ton »

zelenin писал(а): это доказывает причину, по которой вы отказываетесь от композера - вы не знаете для чего он и как работает.

Это менеджер зависимостей, позволяющий автоматически устанавливать библиотеки, и генерирующий автозагрузчик. Разница между ручным и автоматическим (через композер) добавлением библиотек лишь одна - автоматизм (и вытекающая из этого экономия времени).
Соответственно, композер и все, что он устанавливает, увеличивает память не более чем те же пакеты, установленные в ручную.
Мой вопрос был неспроста, как минимум тут добавляется класс с методами, который к тому же и инклудит несколько файлов.
уменьшая свободную память на размер занятый этими объекто/файлами.

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

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

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

PS холивар на тему использовать или нет компостер считаю лишним, потому предлагаю обсудить вопрос чтоб прийти к знаменателю - можно или нет использовать Yii2 без компостера. Спасибо всем проявившим активность в обсуждении.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ручная работа(без Composer)

Сообщение zelenin »

3ton писал(а):Мой вопрос был неспроста, как минимум тут добавляется класс с методами, который к тому же и инклудит несколько файлов.
уменьшая свободную память на размер занятый этими объекто/файлами.
угу, на пару килобайт.
3ton писал(а):А теперь представьте что происходят тысячи таких обращений, как по Вашему повлияет каждый килобайт(я уже не говорю про затраты по времени на лишние инклуды если есть возможность их избежать, потому как винты в настоящее время одно из самых узких мест в производительности сервера) отнятый таким образом на общую память???
тысяча обращений это не пара килобайт * 1000, а пара килобайт * 1.
3ton писал(а):То что "гуевые" продукты ускоряют разработку - это бесспорно, но если речь идет о производительности и экономии каждого байта - стоит понимать разницу в обязательной загрузке ненужных нам в конкретно этой задаче инструментов и использование памяти без их наличия
это не гуй. это всего лишь 6 файлов весом 10-20 кб. Причем статика, без вычислений.
Да, забыл упомянуть еще одно преимущество - автоматически ресолвит необходимые в проекте версии.
3ton писал(а):PS холивар на тему использовать или нет компостер считаю лишним, потому предлагаю обсудить вопрос чтоб прийти к знаменателю - можно или нет использовать Yii2 без компостера. Спасибо всем проявившим активность в обсуждении.
конечно можно. в чем проблема-то?
вы не понимаете, что композер вам УЖЕ сгенерировал статическую версию вашего проекта. Он не использует никакой магии - просто мапит неймспейсы, классы итд, чтобы при запросе проект знал откуда какой класс достать.
Посмотрите где что он подключил и сделайте также ручками с нуля.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: ручная работа(без Composer)

Сообщение chungachguk »

Можно взять файлы автозагрузки композера из папки vendor/composer и заменить их своими, что в зависимости от запроса в php-ный автозагручик попадали неймспейсы только реально необходимых для выполнения запроса скриптов.
3ton
Сообщения: 61
Зарегистрирован: 2009.06.30, 16:35

Re: ручная работа(без Composer)

Сообщение 3ton »

chungachguk писал(а):Можно взять файлы автозагрузки композера из папки vendor/composer и заменить их своими, что в зависимости от запроса в php-ный автозагручик попадали неймспейсы только реально необходимых для выполнения запроса скриптов.
Я думаю что вероятнее всего не верно сформулировал вопрос.

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

Код: Выделить всё

$ext = Yii::app()->myExt;

$ext->process($req);
И только тогда он подключался и отрабатывал. И при этом никаких автолоадеров не запускалось до запроса этого расширения чтоб прописать его, он подгружался при непосредственном обращении к нему.
Аватара пользователя
r3verser
Сообщения: 195
Зарегистрирован: 2012.04.01, 17:29
Откуда: Киев

Re: ручная работа(без Composer)

Сообщение r3verser »

3ton писал(а): И только тогда он подключался и отрабатывал. И при этом никаких автолоадеров не запускалось до запроса этого расширения чтоб прописать его, он подгружался при непосредственном обращении к нему.
так а сейчас разве не также?
Аватара пользователя
r3verser
Сообщения: 195
Зарегистрирован: 2012.04.01, 17:29
Откуда: Киев

Re: ручная работа(без Composer)

Сообщение r3verser »

раньше тоже был автолоадер, просто он был встроенный, и брал пути к файлам из конфига, а сейчас юзается автолоадер из композера он берет их из своего конфига.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ручная работа(без Composer)

Сообщение zelenin »

r3verser писал(а):
3ton писал(а): И только тогда он подключался и отрабатывал. И при этом никаких автолоадеров не запускалось до запроса этого расширения чтоб прописать его, он подгружался при непосредственном обращении к нему.
так а сейчас разве не также?
раньше были псевдонеймспейсы, совпадающие с файловым путем, и yii знал откуда грузить файл.
теперь же 2014 год на дворе и библиотеки могут лежать в разных местах (неймспейс не является отражением файлового пути).

именно для этого композер генерит маппинг всего, установленного через него, к файловой системе. И это не тратит память (спички), т.к. там статические массивы.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: ручная работа(без Composer)

Сообщение chungachguk »

Вот
https://github.com/yiisoft/yii/blob/mas ... e.php#L400
и вот
https://github.com/yiisoft/yii/blob/mas ... e.php#L630

Во второй я ветке, насколько я понимаю, всё тоже самое, только регистрируется автозагрузчик с помощью композера
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ручная работа(без Composer)

Сообщение zelenin »

chungachguk писал(а):Вот
https://github.com/yiisoft/yii/blob/mas ... e.php#L400
и вот
https://github.com/yiisoft/yii/blob/mas ... e.php#L630

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