Browse Source

Added support for installing packages conforming to PSR-4 standard

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
c9c1041a61
  1. 1
      extensions/yii/composer/CHANGELOG.md
  2. 25
      extensions/yii/composer/Installer.php
  3. 1
      framework/CHANGELOG.md

1
extensions/yii/composer/CHANGELOG.md

@ -5,6 +5,7 @@ Yii Framework 2 composer extension Change Log
---------------------------- ----------------------------
- Bug #1480: Fixed issue with creating extensions.php when php opcache is enabled (cebe) - Bug #1480: Fixed issue with creating extensions.php when php opcache is enabled (cebe)
- Enh: Added support for installing packages conforming to PSR-4 standard (qiangxue)
2.0.0 alpha, December 1, 2013 2.0.0 alpha, December 1, 2013

25
extensions/yii/composer/Installer.php

@ -100,13 +100,13 @@ class Installer extends LibraryInstaller
protected function generateDefaultAlias(PackageInterface $package) protected function generateDefaultAlias(PackageInterface $package)
{ {
$autoload = $package->getAutoload();
if (empty($autoload['psr-0'])) {
return false;
}
$fs = new Filesystem; $fs = new Filesystem;
$vendorDir = $fs->normalizePath($this->vendorDir); $vendorDir = $fs->normalizePath($this->vendorDir);
$autoload = $package->getAutoload();
$aliases = []; $aliases = [];
if (!empty($autoload['psr-0'])) {
foreach ($autoload['psr-0'] as $name => $path) { foreach ($autoload['psr-0'] as $name => $path) {
$name = str_replace('\\', '/', trim($name, '\\')); $name = str_replace('\\', '/', trim($name, '\\'));
if (!$fs->isAbsolutePath($path)) { if (!$fs->isAbsolutePath($path)) {
@ -119,6 +119,23 @@ class Installer extends LibraryInstaller
$aliases["@$name"] = $path . '/' . $name; $aliases["@$name"] = $path . '/' . $name;
} }
} }
}
if (!empty($autoload['psr-4'])) {
foreach ($autoload['psr-4'] as $name => $path) {
$name = str_replace('\\', '/', trim($name, '\\'));
if (!$fs->isAbsolutePath($path)) {
$path = $this->vendorDir . '/' . $package->getName() . '/' . $path;
}
$path = $fs->normalizePath($path);
if (strpos($path . '/', $vendorDir . '/') === 0) {
$aliases["@$name"] = '<vendor-dir>' . substr($path, strlen($vendorDir));
} else {
$aliases["@$name"] = $path;
}
}
}
return $aliases; return $aliases;
} }

1
framework/CHANGELOG.md

@ -59,6 +59,7 @@ Yii Framework 2 Change Log
- Enh: Support for file aliases in console command 'message' (omnilight) - Enh: Support for file aliases in console command 'message' (omnilight)
- Enh: Sort and Pagination can now create absolute URLs (cebe) - Enh: Sort and Pagination can now create absolute URLs (cebe)
- Enh: Added support for using array-typed arguments for console commands (qiangxue) - Enh: Added support for using array-typed arguments for console commands (qiangxue)
- Enh: Added support for installing packages conforming to PSR-4 standard (qiangxue)
- Chg #1519: `yii\web\User::loginRequired()` now returns the `Response` object instead of exiting the application (qiangxue) - Chg #1519: `yii\web\User::loginRequired()` now returns the `Response` object instead of exiting the application (qiangxue)
- Chg #1586: `QueryBuilder::buildLikeCondition()` will now escape special characters and use percentage characters by default (qiangxue) - Chg #1586: `QueryBuilder::buildLikeCondition()` will now escape special characters and use percentage characters by default (qiangxue)
- Chg #1610: `Html::activeCheckboxList()` and `Html::activeRadioList()` will submit an empty string if no checkbox/radio is selected (qiangxue) - Chg #1610: `Html::activeCheckboxList()` and `Html::activeRadioList()` will submit an empty string if no checkbox/radio is selected (qiangxue)

Loading…
Cancel
Save