Browse Source

composer_yii alpha

me@helium 7 years ago
parent
commit
8dcc01dd38
1 changed files with 83 additions and 0 deletions
  1. 83 0
      composer_yii.md

+ 83 - 0
composer_yii.md

@@ -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>
+```