{"id":21625455,"url":"https://github.com/coderius/guide_create_composer_extension","last_synced_at":"2026-04-17T08:02:07.710Z","repository":{"id":99011790,"uuid":"173445351","full_name":"coderius/guide_create_composer_extension","owner":"coderius","description":"In this guide step by step I show how create composer extension.","archived":false,"fork":false,"pushed_at":"2019-03-11T17:01:00.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-10T06:22:37.264Z","etag":null,"topics":["composer","composer-package","composer-plugin","create-composer-plugin","guide"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coderius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-02T12:29:04.000Z","updated_at":"2019-03-11T17:01:01.000Z","dependencies_parsed_at":"2023-04-06T22:34:29.024Z","dependency_job_id":null,"html_url":"https://github.com/coderius/guide_create_composer_extension","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coderius/guide_create_composer_extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderius%2Fguide_create_composer_extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderius%2Fguide_create_composer_extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderius%2Fguide_create_composer_extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderius%2Fguide_create_composer_extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderius","download_url":"https://codeload.github.com/coderius/guide_create_composer_extension/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderius%2Fguide_create_composer_extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31920518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","composer-package","composer-plugin","create-composer-plugin","guide"],"created_at":"2024-11-25T01:09:25.571Z","updated_at":"2026-04-17T08:02:07.685Z","avatar_url":"https://github.com/coderius.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Инструкяция по созданию расширения.\n===================================\n_Создание расширения на примере расширения для yii2._\n\n1. Создаем файл *composer.json* в корне расширения примерно такого плана:\n```javascript\n{\n    \"name\": \"coderius/yii2-lightbox2-widget\",\n    \"description\": \"Yii 2 lightbox2-widget\",\n    \"version\": \"1.0.0\",\n    \"keywords\": [\"lightbox\", \"widget\", \"lightbox2\", \"yii2\"],\n    \"type\": \"yii2-extension\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Serg Coderius\",\n            \"email\": \"sunrise4fun@gmail.com\"\n        }\n    ],\n    \n    \"require\": {\n        \"php\": \"\u003e=5.4.0\",\n        \"yiisoft/yii2\": \"~2.0.0\"\n        \n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"coderius\\\\lightbox2\\\\\": \"src/\"\n        }\n    },\n    \"repositories\": [\n        {\n            \"type\": \"path\",\n            \"url\": \"/opt/lampp/htdocs/yii2-extentions/yii2-lightbox2-widget\"\n        }\n        \n    ]\n}\n\n```\nДля того, чтобы подключать расширение из локального компьютера (во время разработки) - указываем нужный адрес, где расширение \nрасположено в корне проекта yii2, к которому подключаем модуль в composer.json. Это нужно для того, чтобы загрузить расширение, которое лежит на локальном компьютере в проект по средствам композера.\n\n```javascript\n\"repositories\": [\n        {\n            \"type\": \"path\",\n            \"url\": \"/opt/lampp/htdocs/yii2-extentions/yii2-lightbox2-widget\"\n        }\n        \n    ]\n```\nТакже нужно указать версию как в примере.\n\n2.Инициализируем git \n*\ngit init .\ngit add .\ngit commit -m \"Commit\"\n*\n\n3. В папке проекта yii2 в файле _composer.json_, куда включаем пакет добавляем:\n```javascript\n\"repositories\": [\n        \n        {\n            \"type\": \"path\",\n            \"url\": \"/opt/lampp/htdocs/yii2-extentions/yii2-lightbox2-widget\"\n        }\n        \n    ], \n```\n4.Переходим в консоли в папку проекта yii2, для которого подключаем расширение.\n5.Устанавливаем пакет из локального компьютера:\n```\ncomposer clear-cache\ncomposer require \"coderius/yii2-lightbox2-widget\" \"*\"\n```    \n6.Возможно расширение будет содержать зависимости из bower (например, какие-то скрипты типа jquery).\nДля того, чтобы включить в composer.json расширения скрипты из bower нужно:\n*Установить bower-asset плагин для взаимодействия с [https://asset-packagist.org](https://asset-packagist.org)\n_Не забыть выполнить комманду *composer global require \"fxp/composer-asset-plugin:^1.2.0\"* для \n установки плагина_\n * Также возможно нужно указать папки для хранения скриптов в проекте:\n ```\n \"config\": {\n        \"fxp-asset\": {\n            \"installer-paths\": {\n                \"npm-asset-library\": \"vendor/npm\",\n                \"bower-asset-library\": \"vendor/bower\"\n            }\n        }\n    },\n```   \n# Инициализация расширения в проекте yii2. #\nТеперь, когда расширение (_если наше расширение - модуль_) установлено из локального компьютера (где ведется разработка), его нужно подключить в проект. Для этого нужно открыть конфигурационный файл. В advanсed шаблоне это common/config/main.php и добавить его в массив 'modules':\n\n```\n'modules' =\u003e [\n    'comment' =\u003e [\n        'class' =\u003e 'yii2mod\\comments\\Module',\n    ],\n]\n```\nВ ключе 'class'  содержится класс модуля Module с пространством имен, соответствующим тому, что был указан в composer.json расширения:\n```\n\"autoload\": {\n        \"psr-4\": {\n            \"coderius\\\\comments\\\\\": \"\"\n        }\n    },\n```\nИли для виджета так:\n```\n\"autoload\": {\n        \"psr-4\": {\n            \"coderius\\\\lightbox2\\\\\": \"src/\"\n        }\n    },\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderius%2Fguide_create_composer_extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderius%2Fguide_create_composer_extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderius%2Fguide_create_composer_extension/lists"}