ручная работа(без Composer)
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: ручная работа(без Composer)
Без неё не будет работать:
1. Хелпер Markdown.
2. Консольные команды (консолька на лету читает описание команд из phpdoc).
Библиотека занимает 224кб, пишется одним из основных разработчиков фреймворка и отлично оттестирована.
1. Хелпер Markdown.
2. Консольные команды (консолька на лету читает описание команд из phpdoc).
Библиотека занимает 224кб, пишется одним из основных разработчиков фреймворка и отлично оттестирована.
Нравится Yii? Давайте сделаем его лучше!.
Re: ручная работа(без Composer)
При таком подходе ставить composer, bower, npm, git на продакшен машины не нужно. Один раз деплоите приложение на локальной машине либо на деплой-сервере, со всеми включенными флагами оптимизации и отброшенными dev-пакетами (см. опцию --no-dev https://getcomposer.org/doc/03-cli.md#install)3ton писал(а): У нас используется для каждого инстанса виртуальная машина в KVM инсталированная в минимальной комплектации, далее ставятся все необходимые пакеты для работы сервера, после вливается приложение. А теперь получается необходимо поставить на каждую git, composer, bower, cebe, nmp и куча всего что нам в принципе не нужно.
Получается готовый "пакет" приложения со всеми выкачанными установленными зависимостями, расширениями и файлами. Этот готовый пакет заливаете с помощью rsync/ssh/ftp на продакшен сервер и готово. Что касается лишних файлов в папке vendors, то их наличие не создает никакой нагрузки на виртуальную машину и удалять их незачем.
Yii Jabber Conference: [email protected]
Re: ручная работа(без Composer)
понимаю 3ton'a, на деплой сервере интернета даже нет, расширения только свои, поэтому composer просто фактически не нужен. Я свои расширения прописываю в фвйле vendor/yiisoft/extensions.php
Re: ручная работа(без Composer)
в vendor должно быть то, что вы всегда можете удалитьde1phi писал(а):понимаю 3ton'a, на деплой сервере интернета даже нет, расширения только свои, поэтому composer просто фактически не нужен. Я свои расширения прописываю в фвйле vendor/yiisoft/extensions.php
Re: ручная работа(без Composer)
ручное подключение расширений: viewtopic.php?f=19&t=20570&p=121282#p121282
Re: ручная работа(без Composer)
Что Вы имеете ввиду???zelenin писал(а): в vendor должно быть то, что вы всегда можете удалить
Ведь там все модули которыми я буду пользоваться в жизненном цикле проекта, а следовательно удалить нельзя(те же самые сурсы Yii2)
Re: ручная работа(без Composer)
я имею в виду, что это не ваш код, а сторонние проекты. Можете удалить папку, начисто установив все с помощью композера.3ton писал(а):Что Вы имеете ввиду???zelenin писал(а): в vendor должно быть то, что вы всегда можете удалить
Ведь там все модули которыми я буду пользоваться в жизненном цикле проекта, а следовательно удалить нельзя(те же самые сурсы Yii2)
Естественно, я не имел в виду, что это можно просто удалить и все.
Re: ручная работа(без Composer)
Суть этого топика как раз в том чтоб композером не пользоваться, а следовательно и ставить и удалять в ручную...zelenin писал(а): я имею в виду, что это не ваш код, а сторонние проекты. Можете удалить папку, начисто установив все с помощью композера.
Естественно, я не имел в виду, что это можно просто удалить и все.
Если пишется гостевуха или лендинг, или домашняя страничка - спорить с Вами не стану, но если пишется серьезный проект с биллингом и приватными сервисами - использование сторонних компонент добавляет не малые риски, а следовательно должна быть проведена ревизия(аудирование) используемого кода сторонних расширений на момент возможных дыр и должна быть исключена любая возможность подтягивания версий отличных от аудируемой(либо даже она не должна подтягиваться если были найдены неприятности и устранены в своей версии). И композер во всем этом плюсов не добавляет, он лишь сгущает краски по отношению с первой версией фреймворка.
Кстати спасибо за Ваше решение которым собираемся воспользоваться
viewtopic.php?f=19&t=20570&p=121282#p121282
Просто ожидалось что это штатная возможность как и в первой версии использовать расширения таким образом и будет оговорена в документации. Пока будем использовать ее на свой страх и риск отслеживая поведение продукта.
Последний раз редактировалось 3ton 2014.11.18, 18:04, всего редактировалось 1 раз.
Re: ручная работа(без Composer)
какая разница, если ставить вы будете ТЕ ЖЕ пакеты, хоть в ручную хоть через композер.3ton писал(а):Суть этого топика как раз в том чтоб композером не пользоваться, а следовательно и ставить и удалять в ручную...zelenin писал(а): я имею в виду, что это не ваш код, а сторонние проекты. Можете удалить папку, начисто установив все с помощью композера.
Естественно, я не имел в виду, что это можно просто удалить и все.
Если пишется гостевуха или лендинг, или домашняя страничка - спорить с Вами не стану, но если пишется серьезный проект с биллингом и приватными сервисами - использование сторонних компонент добавляет не малые риски, а следовательно должна быть проведена ревизия(аудирование) используемого кода сторонних расширений на момент возможных дыр и должна быть исключена любая возможность подтягивания версий отличных от аудируемой(либо даже она не должна подтягиваться если были найдены неприятности и устранены в своей версии). И композер во всем этом плюсов не добавляет, он лишь сгущает краски по отношению с первой версией фреймворка.
Re: ручная работа(без Composer)
разница тутzelenin писал(а): какая разница, если ставить вы будете ТЕ ЖЕ пакеты, хоть в ручную хоть через композер.
3ton писал(а): либо даже она не должна подтягиваться если были найдены неприятности и устранены в своей версии
Re: ручная работа(без Composer)
я могу ошибаться, а искать не хочу, но по-моему именно вам я указывал, что вы не понимаете как композер работает и из-за этого у вас какие-то предубеждения.3ton писал(а): либо даже она не должна подтягиваться если были найдены неприятности и устранены в своей версии
Еще раз: вы на деве установили через композер (или вручную) какие-то пакеты, проверили их и вылили на продакшн (хоть с композером хоть без). Зачем в таком случае ставить вручную, если можно автоматом?
Re: ручная работа(без Composer)
Уважаемый, как работать с композером я разобрался, ставить и подтягивать зависимости могу, это не сложнее чем использовать XSLT в качестве шаблонизатора, но суть вопроса не в этом.zelenin писал(а): я могу ошибаться, а искать не хочу, но по-моему именно вам я указывал, что вы не понимаете как композер работает и из-за этого у вас какие-то предубеждения.
Давайте просто решим что я плохо понимаю, либо параноик, либо еще что-то... )))))
Тем более что я Вас поблагодарил за найденное в другой теме решение.
Только очень Вас прошу не спорить больше на тему необходимости заданного вопроса.
Пожалуйста
Re: ручная работа(без Composer)
да я не спорю. Я говорю, что причина , по которой вы хотите обойтись без композера таковой не является, т.к. в вашу экосистему попадают абсолютно те же пакеты, которые вы скачаете и установите в ручную. И нет вариантов, когда может попасть что-то левое без вашего ведома.3ton писал(а):Уважаемый, как работать с композером я разобрался, ставить и подтягивать зависимости могу, это не сложнее чем использовать XSLT в качестве шаблонизатора, но суть вопроса не в этом.zelenin писал(а): я могу ошибаться, а искать не хочу, но по-моему именно вам я указывал, что вы не понимаете как композер работает и из-за этого у вас какие-то предубеждения.
Давайте просто решим что я плохо понимаю, либо параноик, либо еще что-то... )))))
Тем более что я Вас поблагодарил за найденное в другой теме решение.
Только очень Вас прошу не спорить больше на тему необходимости заданного вопроса.
Пожалуйста
Паранойя - это неплохо в данном случае, но вы приведите пример, когда что-то может случиться? Такого примера вы не приведете.
Re: ручная работа(без Composer)
Пример: используем расширение гейта процессинга оплаты - обновления внесенные разработчиком могут быт не безопасны, но код все равно обновитсяzelenin писал(а): Паранойя - это неплохо в данном случае, но вы приведите пример, когда что-то может случиться? Такого примера вы не приведете.
или к примеру мы нашли оплошность и закрыли ее, но потом нам нужно поднять проект в новом месте и композер подтянет старый, не отредактированный нами экстеншен....
За 7 лет крупных корпоративных проектов с разрабами разных категорий много можно представить.
В одном случае нам даже пришлось взять за шаблонизатор XSLT и только так мы ушли от лени(проблемы отделить логику от отображения) разработчиков исключив возможности написания РНР кода во вьюшках, что не раз становилось проблемой для проекта так как при редактировании отображения меняли логику(изначально все шло в перемешку, проект достался по наследству, самописный с 2002 года) и не важно критично или нет, важен сам факт такой проблемы.
Но такой шаг решил нашу проблему.
Это еще раз напоминает нам о том что проблемы могут быть самыми нелепыми, а их решения совсем неочевидными
Re: ручная работа(без Composer)
он сам по себе обновится? ВЫ (разработчик) его обновите. Нет разницы, вручную вы его обновите или с помощью композера. Это сделаете вы.3ton писал(а): Пример: используем расширение гейта процессинга оплаты - обновления внесенные разработчиком могут быт не безопасны, но код все равно обновится
В первом случае вы зайдете на гитхаб, скачаете архив с обновлением, положите в какую-то папочку и начнете проверять его код.
Во втором случае, вы установите обновление через композер и опять же начнете его проверять.
И вы же потом будете проводить ревизию нового кода в обоих случаях.
Где тут место дырке, если все зависит только от вас?
прежде чем отредактировать чужое расширение, его нужно вывести из-под обновления композером и положить в основной репозиторий проекта. Неужели это не очевидно?3ton писал(а): или к примеру мы нашли оплошность и закрыли ее, но потом нам нужно поднять проект в новом месте и композер подтянет старый, не отредактированный нами экстеншен....
вы в качестве кого были в этих проектах? проджект-менеджер? явно не разраб, потому что выше написанное мог написать только джуниор-одногодка. Это даже к программированию не относится. Это тупо общее непонимание правильного построения проекта.3ton писал(а):За 7 лет крупных корпоративных проектов с разрабами разных категорий много можно представить
Re: ручная работа(без Composer)
На самом деле про аудит сторонних библиотек 3ton говорит верно: без проверки можно натянуть себе в проект кучу дыр и ошибок, из-за которых потом может быть очень больно. Но вот только композер здесь совершенно не причем, 3ton напрасно отказывается от его использования, он просто не умеет его готовить
На самом деле, композер, хоть и неявно, состоит из двух частей:
1. Сам composer.phar, исполняемый скрипт, который по заданному вами описанию в composer.json скачивает библиотеки и генерирует автолоадер. В процессе работы вашего приложения composer.phar не нужен, поэтому на продакшене его можно вообще не ставить
2. Созданный композером автозагрузчик, представляющий собой один класс и несколько файлов с путями автозагрузки в виде массивов. Его вы используете в вашем приложении, чтобы загружать сторонние (а также и ваши собственные классы). Данный автозагрузчик свой для каждого проекта.
Обратите внимание, что композер сам по себе ничего не скачивает и не обновляет (это не автообновления в виндоус). Он это делает только по вашей команде. Более того, в конфигурационном файле composer.json для вашего проекта вы можете указать точные версии библиотек (с точностью до git-коммита или до определенной версии), и композер будет держать эти версии, даже если появятся новые.
Информацию о пакетах расширений композер по-умолчанию берет из packagist.org. Для приватного проекта, который аудирует расширения, это может быть неприемлемо. И это легко исправить: композер позволяет через настройки composer.json отключить использование пакагиста. А для ваших приватных библиотек вы можете поднять свой собственный репозиторий (с помощью satis, к примеру) внутри вашей сети и ссылаться на него. Можете и не поднимать, а просто прописывать прямо в composer.json адреса пакетов (в виде ссылок на git-сервер, к примеру). Смотрите документацию по композеру, там все это описано.
Т.е. на самом деле, используя композер, вы получаете удобство работы с библиотеками и их зависимостями. Я прекрасно помню, как в проектах, которые у меня были до композера, приходилось руками копировать архивы расширений, класть их в нужные папки, прописывать пути: тот еще геморрой, особенно если одна библиотека зависит от нескольких других.
Но можно ли в yii2 жить без композера? Если мазохизм вам свойственен, то можно Например, в yii2 есть на самом деле свой собственный автозагрузчик классов
https://github.com/yiisoft/yii2/blob/ma ... i.php#L272
он уважает классмапы и алиасы, поэтому мы можете прописать все пути через них, отказавшись от композера и настроив все в ручную. Но зачем?? Ведь композер все делает сам, а взамен просит только корректно составить composer.json
На самом деле, композер, хоть и неявно, состоит из двух частей:
1. Сам composer.phar, исполняемый скрипт, который по заданному вами описанию в composer.json скачивает библиотеки и генерирует автолоадер. В процессе работы вашего приложения composer.phar не нужен, поэтому на продакшене его можно вообще не ставить
2. Созданный композером автозагрузчик, представляющий собой один класс и несколько файлов с путями автозагрузки в виде массивов. Его вы используете в вашем приложении, чтобы загружать сторонние (а также и ваши собственные классы). Данный автозагрузчик свой для каждого проекта.
Обратите внимание, что композер сам по себе ничего не скачивает и не обновляет (это не автообновления в виндоус). Он это делает только по вашей команде. Более того, в конфигурационном файле composer.json для вашего проекта вы можете указать точные версии библиотек (с точностью до git-коммита или до определенной версии), и композер будет держать эти версии, даже если появятся новые.
Информацию о пакетах расширений композер по-умолчанию берет из packagist.org. Для приватного проекта, который аудирует расширения, это может быть неприемлемо. И это легко исправить: композер позволяет через настройки composer.json отключить использование пакагиста. А для ваших приватных библиотек вы можете поднять свой собственный репозиторий (с помощью satis, к примеру) внутри вашей сети и ссылаться на него. Можете и не поднимать, а просто прописывать прямо в composer.json адреса пакетов (в виде ссылок на git-сервер, к примеру). Смотрите документацию по композеру, там все это описано.
Т.е. на самом деле, используя композер, вы получаете удобство работы с библиотеками и их зависимостями. Я прекрасно помню, как в проектах, которые у меня были до композера, приходилось руками копировать архивы расширений, класть их в нужные папки, прописывать пути: тот еще геморрой, особенно если одна библиотека зависит от нескольких других.
Но можно ли в yii2 жить без композера? Если мазохизм вам свойственен, то можно Например, в yii2 есть на самом деле свой собственный автозагрузчик классов
https://github.com/yiisoft/yii2/blob/ma ... i.php#L272
он уважает классмапы и алиасы, поэтому мы можете прописать все пути через них, отказавшись от композера и настроив все в ручную. Но зачем?? Ведь композер все делает сам, а взамен просит только корректно составить composer.json
Re: ручная работа(без Composer)
ты повторяешь все что я сказал один в один. Композер запускает разработчик и те же библиотеки нужно также проверять, если боишься дыр. 3ton не понимает этого, т.к. является не разработчиком, а человеком, принимающим решения. И ему лучше простой и топорный способ, чем аналогичный, но полуавтоматический, т.к. в полуавтоматическом, под капотом какая-то магия, а магия непрактикующему программисту непонятна.omnilight писал(а):На самом деле про аудит сторонних библиотек 3ton говорит верно: без проверки можно натянуть себе в проект кучу дыр и ошибок, из-за которых потом может быть очень больно. Но вот только композер здесь совершенно не причем, 3ton напрасно отказывается от его использования, он просто не умеет его готовить
На самом деле, композер, хоть и неявно, состоит из двух частей:
1. Сам composer.phar, исполняемый скрипт, который по заданному вами описанию в composer.json скачивает библиотеки и генерирует автолоадер. В процессе работы вашего приложения composer.phar не нужен, поэтому на продакшене его можно вообще не ставить
2. Созданный композером автозагрузчик, представляющий собой один класс и несколько файлов с путями автозагрузки в виде массивов. Его вы используете в вашем приложении, чтобы загружать сторонние (а также и ваши собственные классы). Данный автозагрузчик свой для каждого проекта.
Обратите внимание, что композер сам по себе ничего не скачивает и не обновляет (это не автообновления в виндоус). Он это делает только по вашей команде. Более того, в конфигурационном файле composer.json для вашего проекта вы можете указать точные версии библиотек (с точностью до git-коммита или до определенной версии), и композер будет держать эти версии, даже если появятся новые.
Информацию о пакетах расширений композер по-умолчанию берет из packagist.org. Для приватного проекта, который аудирует расширения, это может быть неприемлемо. И это легко исправить: композер позволяет через настройки composer.json отключить использование пакагиста. А для ваших приватных библиотек вы можете поднять свой собственный репозиторий (с помощью satis, к примеру) внутри вашей сети и ссылаться на него. Можете и не поднимать, а просто прописывать прямо в composer.json адреса пакетов (в виде ссылок на git-сервер, к примеру). Смотрите документацию по композеру, там все это описано.
Т.е. на самом деле, используя композер, вы получаете удобство работы с библиотеками и их зависимостями. Я прекрасно помню, как в проектах, которые у меня были до композера, приходилось руками копировать архивы расширений, класть их в нужные папки, прописывать пути: тот еще геморрой, особенно если одна библиотека зависит от нескольких других.
Но можно ли в yii2 жить без композера? Если мазохизм вам свойственен, то можно Например, в yii2 есть на самом деле свой собственный автозагрузчик классов
https://github.com/yiisoft/yii2/blob/ma ... i.php#L272
он уважает классмапы и алиасы, поэтому мы можете прописать все пути через них, отказавшись от композера и настроив все в ручную. Но зачем?? Ведь композер все делает сам, а взамен просит только корректно составить composer.json
Re: ручная работа(без Composer)
Ей богу как дети малые )))))))))))))))))))))))zelenin писал(а):3ton не понимает этого, т.к. является не разработчиком, а человеком, принимающим решения. И ему лучше простой и топорный способ, чем аналогичный, но полуавтоматический, т.к. в полуавтоматическом, под капотом какая-то магия, а магия непрактикующему программисту непонятна.
Вопрос был задан конкретно можно или нет.
К чему обсуждать статус и занятия чела о котором ровным счетом ничего не известно? неужели нельзя простым ответом высказать возможно или нет?
Это наверно как если я спрошу какое из красных вин к сыру подойдет лучше, меня начнут убеждать что с сыром нужно употреблять белые вина и чел ничего в винах не понимает.
По правде говоря я считаю всегда нужным выслушать совет, даже если изначально знаю что не воспользуюсь им, но достает когда люди начинают фанатично на этом настаивать, совсем не учитывая пожелания человека. У меня так было когда покупал свой первый мерседес(кстати будет сказано - на заработанные чисто "практикующим" программированием), все знакомые отговаривали и говорили что лучше японец, мерин дороже в обслуживании, дороже запчасти и т.д. и т.п.... Но мне пока все равно - мне нравится это авто, я его купил и следующее мое авто будет если не тесла, то тоже мерин.
Так и тут пока вы обсуждаете что использовать нужно композер и без него никуда, я его освоил и использую(но только для своих простеньких проектов и только на дев машине) до создания данного топика по примеру из гита, но при этом меня все же интересует режим работы без него для проектов в которых совсем иные задачи и требования к приватности.
Александр поделился своим способом, за что ему огромное спасибо, но мне казалось должна быть и задокументированная возможность использовать для этих целей только встроенный автолодер Yii2. Именно с этой целью и был создан данный топик.
- chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Re: ручная работа(без Composer)
Нафиг сыр, пей так.3ton писал(а): Это наверно как если я спрошу какое из красных вин к сыру подойдет лучше, меня начнут убеждать что с сыром нужно употреблять белые вина и чел ничего в винах не понимает.
Re: ручная работа(без Composer)
что за идиотский вопрос? то, что делается автоматическим способом сторонним инструментом всегда можно реализовать и в ручную. Уже несколько раз написали в теме об этом. И даже решение дали.3ton писал(а):неужели нельзя простым ответом высказать возможно или нет?
если ты будешь на гастрономическом форуме, то именно так и сделают. а то гляди и забанят.3ton писал(а):Это наверно как если я спрошу какое из красных вин к сыру подойдет лучше, меня начнут убеждать что с сыром нужно употреблять белые вина и чел ничего в винах не понимает.
собственно тебя ни в чем не убеждают. тебе говорят, что твое решение на уровне веры, а ничего практически не дает. Но ты пытаешься доказать, что есть причины, по которым ты все-таки выбираешь свое решение. На что тебе аргументировано опять отвечают, что это вера, а не аргументы.3ton писал(а):По правде говоря я считаю всегда нужным выслушать совет, даже если изначально знаю что не воспользуюсь им, но достает когда люди начинают фанатично на этом настаивать, совсем не учитывая пожелания человека. У меня так было когда покупал свой первый мерседес(кстати будет сказано - на заработанные чисто "практикующим" программированием), все знакомые отговаривали и говорили что лучше японец, мерин дороже в обслуживании, дороже запчасти и т.д. и т.п.... Но мне пока все равно - мне нравится это авто, я его купил и следующее мое авто будет если не тесла, то тоже мерин.
ты опять начал выдержки из своей библии талдычить. Композер никак не трогает приватность проекта.3ton писал(а):меня все же интересует режим работы без него для проектов в которых совсем иные задачи и требования к приватности.
именно встроенный автолоадер и используется. мой способ вполне нативный и никаких хаков не использует.3ton писал(а):Александр поделился своим способом, за что ему огромное спасибо, но мне казалось должна быть и задокументированная возможность использовать для этих целей только встроенный автолодер Yii2. Именно с этой целью и был создан данный топик.