无法使用作曲家安装 Yii 1.x


Cannot install Yii 1.x using Composer

现在看来Yii很流行,使用作曲家也是如此(而不是手动安装你的PHP库),所以我决定尝试一下。

无论如何,这些是我的步骤:

  1. mkdir "yii-dev" in/var/www/html (my box run Debian 7 64)

  2. mkdir -p yii-dev/protected/config

  3. 在/yii-dev/protected/config 中创建 composer.json:

{ "repositories": [
    {
        "type":"composer",
        "url": "http://packages.phundament.com"
    }
],
"require": {
    "php": "5.6.5",
    "yiisoft/yii": "1.1.6",
    "yiiext/migrate-command": "0.7.2"
},
"config": {
    "bin-dir": "bin/"
},
"autoload": {
    "psr-0": {
        "config": "./"
    }
},
"scripts": {
    "pre-install-cmd": "config''ComposerCallback::preInstall",
    "post-install-cmd": "config''ComposerCallback::postInstall",
    "pre-update-cmd": "config''ComposerCallback::preUpdate",
    "post-update-cmd": "config''ComposerCallback::postUpdate",
    "post-package-install": ["config''ComposerCallback::postPackageInstall"],
    "post-package-update": ["config''ComposerCallback::postPackageUpdate"]
} }
  1. 然后我在 yii-dev/config 中添加控制台.php:
<?php
return array(
    'aliases' => array(
        'vendor' => 'application.vendor',
    ),
    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR .'..',
    'name' => 'My Awesome Yii Site',
    'components' => array(
        'db' => array(
            // PostgreSQL
            'connectionString' => 'pgsql:host=localhost;dbname=yii_dev',
            'emulatePrepare' => true,
            'username' => 'yii',
            'password' => 'yii123',
            'charset' => 'utf8',
        ),
    ),
    'params' => array(
        'composer.callbacks' => array(
            // args for Yii command runner
            'yiisoft/yii-install' => array('yiic', 'webapp', dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'),
            'post-update' => array('yiic', 'migrate'),
            'post-install' => array('yiic', 'migrate'),
        ),
    ),
);
  1. 最后,ComposerCallback.php在yii-dev/protected/config中。内容有点长,所以我不放在这里。相反,它可以在 http://www.shanedowling.com/yii-with-composer/

然后当我运行"作曲家安装"时,我得到这个:

$ 作曲家安装

Phundament 3 Installernn * composer.json 中指定的下载包

  • 触发器作曲家回调nn开始安装?[是|否] 是

PHP 致命错误:在 中找不到类 'config''Yii' /var/www/html/yii-dev/protected/config/ComposerCallback.php on line 182

致命错误:在 中找不到类"配置''Yii" /var/www/html/yii-dev/protected/config/ComposerCallback.php on line 182

如何解决这个问题?

这可能是一个很老的问题。但是我今天仍然不得不面对同样的问题,将作曲家配置到我们现有的使用 Yii1.1 的旧系统之一。这就是我所做的,它正在起作用。

我的项目结构是:

project_dir/website/protected/  
project_dir/website/index.php

所以,我在/website/目录中安装了作曲家。

在本地安装编辑器

$ cd website/
/website$ curl -sS https://getcomposer.org/installer | php
/website$ php composer.phar -h

要更新系统以要求自动加载.php,请将以下内容添加到网站/protected/config/main.php

require_once( dirname(__FILE__) . '/../../vendor/autoload.php');

在网站内将以下内容添加到 .htaccess/

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} vendor/ [OR]
RewriteCond %{REQUEST_FILENAME} composer.phar [OR]
RewriteCond %{REQUEST_FILENAME} composer.json [OR]
RewriteCond %{REQUEST_FILENAME} composer.lock
RewriteRule . index.php

全部完成。只需安装您想要的内容

composer require packegeName

参考: https://devreadwrite.com/posts/add-the-composer-to-the-application-on-yii