сделал форк репы, внес изменения, затем хочу использовать свой форк но композер ругается The requested package could not be found in any version, there may be a typo in the package name указал "minimum-stability": "dev", в пакете указал dev-master и все равно не находит
Код (Text): { "name": "yiisoft/yii2-app-basic", "description": "Yii 2 Basic Project Template", "keywords": ["yii2", "framework", "basic", "project template"], "homepage": "http://www.yiiframework.com/", "type": "project", "license": "BSD-3-Clause", "support": { "issues": "https://github.com/yiisoft/yii2/issues?state=open", "forum": "http://www.yiiframework.com/forum/", "wiki": "http://www.yiiframework.com/wiki/", "irc": "irc://irc.freenode.net/yii", "source": "https://github.com/yiisoft/yii2" }, "minimum-stability": "dev", "require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.5", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", "nodge/yii2-eauth": "~2.0", "yiisoft/yii2-jui": "~2.0.0", "nicdnepr/yii2-free-kassa": "dev-master" }, "require-dev": { "yiisoft/yii2-codeception": "*", "yiisoft/yii2-debug": "*", "yiisoft/yii2-gii": "*", "yiisoft/yii2-faker": "*" }, "repositories": [ { "type": "vcs", "url": "https://github.com/nicdnepr/yii2-free-kassa" } ], "config": { "process-timeout": 1800 }, "scripts": { "post-create-project-cmd": [ "yii\\composer\\Installer::postCreateProject" ] }, "extra": { "yii\\composer\\Installer::postCreateProject": { "setPermission": [ { "runtime": "0777", "web/assets": "0777", "yii": "0755" } ], "generateCookieValidationKey": [ "config/web.php" ] }, "asset-installer-paths": { "npm-asset-library": "vendor/npm", "bower-asset-library": "vendor/bower" } } } пакет nicdnepr/yii2-free-kassa
Код (Javascript): "repositories": [ { "type": "git", "url": "https://github.com/nicdnepr/yii2-free-kassa.git" } ],
В require ты не должен использовать имя своего репозитория (nicdnepr/yii2-free-kassa), а должен использовать оригинальное (yarcode/yii2-free-kassa). Имя репозитория берется не из пути в git, а из package.json. Т.е. или используешь старое имя или меняешь в форке package.json
Спрошу тут тоже. Я наконец-то разобрался с композером, подрубил его локально к проекту, добавил туда две нужные библиотеки. Код (Text): { "require": { "dompdf/dompdf": "^0.8.0", "phpoffice/phpword": "v0.13.*" } } Первая используется только на одной странице сайта. Собссна, вопрос - может мне нужно тогда держать две копии композера? Чтобы первая библиотека не подгружалась лишний раз и не затупливала те участки сайта, где она не нужна. Или автолоудер композера работает так, что лишнее не загружается?
@NerdRage пакеты композера это удобный способ доставки исходников. Ты создаешь проект, прописываешь зависимости, запускаешь композер инсталл (и позже обновляешься через апдейт) и получаешь файлики тех проектов, которые в зависимостях. Автозагрузка же это из другой оперы - это момент исполнения кода. Композеровский автолодер в голом виде просто помогает быстрее найти те файлы, которые ты накачал через зависимости. Ту же задачу можно решить наговнокодив собственный загрузчик.
@Ganzal Ну, если автолоудер не подгружает ничего лишнего при загрузке самого себя, то почему бы не пользоваться им.
Но ты не добавил PinPIE! --- Добавлено --- ленивая загрузка там. класс загружается только при обращении
Автолоадер композера, при беглом взгляде, выглядит совсем не оптимально. Хотя детально в его работу я не вникал.
Потому, что он (автолоадер) состоит из нескольких скриптов и использует довольно жесткое ООП. Например: Код (Text): public function getPrefixesPsr4() { return $this->prefixDirsPsr4; } public function getFallbackDirs() { return $this->fallbackDirsPsr0; } public function getFallbackDirsPsr4() { return $this->fallbackDirsPsr4; } public function getClassMap() { return $this->classMap; } В другом месте используется функция stream_resolve_include_path(), я не знаю как часто и для чего, но работать с include path в большинстве случаев не является необходимостью. Многое сделано ради секурности и реализации PSR-0 и PSR-4.