За последние 24 часа нас посетили 18839 программистов и 1586 роботов. Сейчас ищут 1187 программистов ...

вопрос про composer

Тема в разделе "Версионность, тестирование и развёртывание", создана пользователем vikrorpert, 2 июн 2016.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    сделал форк репы, внес изменения, затем хочу использовать свой форк
    но композер ругается The requested package could not be found in any version, there may be a typo in the package name
    указал "minimum-stability": "dev", в пакете указал dev-master и все равно не находит
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    А форк репы на пакагисте опубликован?
     
  3. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    нет,я указал в разделе repositories ссылку на свой пакет
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    composer.json в студию
     
  5. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    Код (Text):
    1. {
    2.     "name": "yiisoft/yii2-app-basic",
    3.     "description": "Yii 2 Basic Project Template",
    4.     "keywords": ["yii2", "framework", "basic", "project template"],
    5.     "homepage": "http://www.yiiframework.com/",
    6.     "type": "project",
    7.     "license": "BSD-3-Clause",
    8.     "support": {
    9.         "issues": "https://github.com/yiisoft/yii2/issues?state=open",
    10.         "forum": "http://www.yiiframework.com/forum/",
    11.         "wiki": "http://www.yiiframework.com/wiki/",
    12.         "irc": "irc://irc.freenode.net/yii",
    13.         "source": "https://github.com/yiisoft/yii2"
    14.     },
    15.     "minimum-stability": "dev",
    16.     "require": {
    17.         "php": ">=5.4.0",
    18.         "yiisoft/yii2": ">=2.0.5",
    19.         "yiisoft/yii2-bootstrap": "*",
    20.         "yiisoft/yii2-swiftmailer": "*",
    21.         "nodge/yii2-eauth": "~2.0",
    22.         "yiisoft/yii2-jui": "~2.0.0",
    23.         "nicdnepr/yii2-free-kassa": "dev-master"
    24.     },
    25.     "require-dev": {
    26.         "yiisoft/yii2-codeception": "*",
    27.         "yiisoft/yii2-debug": "*",
    28.         "yiisoft/yii2-gii": "*",
    29.         "yiisoft/yii2-faker": "*"
    30.     },
    31.     "repositories": [
    32.         {
    33.             "type": "vcs",
    34.             "url": "https://github.com/nicdnepr/yii2-free-kassa"
    35.         }
    36.     ],
    37.     "config": {
    38.         "process-timeout": 1800
    39.     },
    40.     "scripts": {
    41.         "post-create-project-cmd": [
    42.             "yii\\composer\\Installer::postCreateProject"
    43.         ]
    44.     },
    45.     "extra": {
    46.         "yii\\composer\\Installer::postCreateProject": {
    47.             "setPermission": [
    48.                 {
    49.                     "runtime": "0777",
    50.                     "web/assets": "0777",
    51.                     "yii": "0755"
    52.                 }
    53.             ],
    54.             "generateCookieValidationKey": [
    55.                 "config/web.php"
    56.             ]
    57.         },
    58.         "asset-installer-paths": {
    59.             "npm-asset-library": "vendor/npm",
    60.             "bower-asset-library": "vendor/bower"
    61.         }
    62.     }
    63. }
    пакет nicdnepr/yii2-free-kassa
     
  6. MaXyC_Web_Studio

    MaXyC_Web_Studio Активный пользователь

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    1. Код (Javascript):
      1.     "repositories": [
      2.         {
      3.             "type": "git",
      4.             "url": "https://github.com/nicdnepr/yii2-free-kassa.git"
      5.         }
      6.     ],
     
  7. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    таже фигня
    да и чем это отличается от моей записи?
     
  8. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    В require ты не должен использовать имя своего репозитория (nicdnepr/yii2-free-kassa), а должен использовать оригинальное (yarcode/yii2-free-kassa). Имя репозитория берется не из пути в git, а из package.json. Т.е. или используешь старое имя или меняешь в форке package.json
     
    vikrorpert нравится это.
  9. NerdRage

    NerdRage Активный пользователь

    С нами с:
    6 июл 2016
    Сообщения:
    439
    Симпатии:
    42
    Спрошу тут тоже. Я наконец-то разобрался с композером, подрубил его локально к проекту, добавил туда две нужные библиотеки.
    Код (Text):
    1. {
    2.     "require": {
    3.         "dompdf/dompdf": "^0.8.0",
    4.         "phpoffice/phpword": "v0.13.*"
    5.     }
    6. }
    Первая используется только на одной странице сайта. Собссна, вопрос - может мне нужно тогда держать две копии композера? Чтобы первая библиотека не подгружалась лишний раз и не затупливала те участки сайта, где она не нужна. Или автолоудер композера работает так, что лишнее не загружается?
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    должен подгружать при первом вызове в коде
     
    NerdRage нравится это.
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @NerdRage пакеты композера это удобный способ доставки исходников. Ты создаешь проект, прописываешь зависимости, запускаешь композер инсталл (и позже обновляешься через апдейт) и получаешь файлики тех проектов, которые в зависимостях. Автозагрузка же это из другой оперы - это момент исполнения кода. Композеровский автолодер в голом виде просто помогает быстрее найти те файлы, которые ты накачал через зависимости. Ту же задачу можно решить наговнокодив собственный загрузчик.
     
    denis01 нравится это.
  12. NerdRage

    NerdRage Активный пользователь

    С нами с:
    6 июл 2016
    Сообщения:
    439
    Симпатии:
    42
    @Ganzal Ну, если автолоудер не подгружает ничего лишнего при загрузке самого себя, то почему бы не пользоваться им.
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Но ты не добавил PinPIE!
    --- Добавлено ---
    ленивая загрузка там.
    класс загружается только при обращении
     
    denis01 нравится это.
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    Автолоадер композера, при беглом взгляде, выглядит совсем не оптимально. Хотя детально в его работу я не вникал.
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    почему же?
     
  16. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    Потому, что он (автолоадер) состоит из нескольких скриптов и использует довольно жесткое ООП.
    Например:
    Код (Text):
    1.     public function getPrefixesPsr4()
    2.     {
    3.         return $this->prefixDirsPsr4;
    4.     }
    5.  
    6.     public function getFallbackDirs()
    7.     {
    8.         return $this->fallbackDirsPsr0;
    9.     }
    10.  
    11.     public function getFallbackDirsPsr4()
    12.     {
    13.         return $this->fallbackDirsPsr4;
    14.     }
    15.  
    16.     public function getClassMap()
    17.     {
    18.         return $this->classMap;
    19.     }
    В другом месте используется функция stream_resolve_include_path(), я не знаю как часто и для чего, но работать с include path в большинстве случаев не является необходимостью.
    Многое сделано ради секурности и реализации PSR-0 и PSR-4.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не понял что плохо кроме концепции, а про include path я не понял, что плохого