|
@@ -0,0 +1,83 @@
|
|
|
+# Composer
|
|
|
+
|
|
|
+**Composer** - типичная система управления зависимости и их установки. Идея и реализация во многом копируют `nmp` и `bundler` а так же пакетные менеджеры развитых операционных
|
|
|
+систем.
|
|
|
+
|
|
|
+## Что это и зачем.
|
|
|
+
|
|
|
+В условиях динамичного развития рынка ПО и Интернет, ПО обновляется часто - выходят те или иные багфиксы, минорные и мажорные релизы и т. д. Так же происходит с теми
|
|
|
+или иными библиотеками, которые используются в другом ПО. В свою очередь, библиотеки могут зависеть от других библиотек. ПО - штука хрупкая, и при любых несовместимостях
|
|
|
+в этих зависимостях всё может посыпаться.
|
|
|
+
|
|
|
+## Composer решает эти проблемы :)
|
|
|
+
|
|
|
+В отличие от пакетных менеджеров, `composer` ставит пакеты только в папку проекта, хотя есть возможность и для глобальной установки. Таким образом каждый проект может
|
|
|
+иметь набор своих программ и их версий.
|
|
|
+
|
|
|
+## `composer.json`
|
|
|
+
|
|
|
+Файл в формате `JSON`, сделанный по аналогии с `package.json` node.js-менеджера `npm`. В нём указываются зависимости для вашего проекта.
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "require": {
|
|
|
+ "monolog/monolog": "1.0.*"
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+## Установка
|
|
|
+
|
|
|
+```bash
|
|
|
+php composer.phar install
|
|
|
+```
|
|
|
+
|
|
|
+При выполнении этой команды `composer` смотрит в файл и устанавливает все зависимости в папку `vendor`
|
|
|
+
|
|
|
+## Autoload
|
|
|
+
|
|
|
+`composer` так же генерирует файлы для автоподключения библиотек:
|
|
|
+
|
|
|
+```php
|
|
|
+require __DIR__ . '/vendor/autoload.php';
|
|
|
+```
|
|
|
+
|
|
|
+после этого библиотеки доступны для использования в проекте.
|
|
|
+
|
|
|
+## Документация
|
|
|
+
|
|
|
+https://getcomposer.org/doc/
|
|
|
+
|
|
|
+# Yii
|
|
|
+
|
|
|
+Начнем с установки:
|
|
|
+
|
|
|
+```bash
|
|
|
+composer global require "fxp/composer-asset-plugin:^1.2.0"
|
|
|
+composer create-project --prefer-dist yiisoft/yii2-app-basic basic
|
|
|
+```
|
|
|
+
|
|
|
+Для проверки используем встроенный веб-сервер PHP:
|
|
|
+
|
|
|
+```bash
|
|
|
+cd basic/web
|
|
|
+php yii serve
|
|
|
+```
|
|
|
+
|
|
|
+Или, для Apache используем конфигурацию:
|
|
|
+```
|
|
|
+# Set document root to be "basic/web"
|
|
|
+DocumentRoot "path/to/basic/web"
|
|
|
+
|
|
|
+<Directory "path/to/basic/web">
|
|
|
+# use mod_rewrite for pretty URL support
|
|
|
+ RewriteEngine on
|
|
|
+ # If a directory or a file exists, use the request directly
|
|
|
+ RewriteCond %{REQUEST_FILENAME} !-f
|
|
|
+ RewriteCond %{REQUEST_FILENAME} !-d
|
|
|
+ # Otherwise forward the request to index.php
|
|
|
+ RewriteRule . index.php
|
|
|
+
|
|
|
+ # ...other settings...
|
|
|
+</Directory>
|
|
|
+```
|