无法使用Composer安装Yii 1.x.

时间:2015-02-04 09:15:45

标签: php yii

现在看来Yii很受欢迎,使用composer也是如此(而不是手动安装你的PHP库),所以我决定尝试一下。

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

  1. mkdir" yii-dev"在/ var / www / html(我的框运行Debian 7 64)

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

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

  4. { "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中添加console.php:
    2. <?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. 最后,yii-dev / protected / config中的ComposerCallback.php。内容有点长,所以我不把它放在这里。相反,它可以在http://www.shanedowling.com/yii-with-composer/
      2. 找到

        然后当我运行&#34; composer install&#34;时,我得到了这个:

          

        $ composer install

             

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

             
            
        • 触发composer callbacksnnStart安装? [是|否]是
        •   
             

        PHP致命错误:Class&#39; config \ Yii&#39;找不到   /var/www/html/yii-dev/protected/config/ComposerCallback.php在线   182

             

        致命错误:Class&#39; config \ Yii&#39;找不到   /var/www/html/yii-dev/protected/config/ComposerCallback.php在线   182

        如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这可能是个很老的问题。但是今天我仍然必须面对相同的问题,才能将作曲家配置为使用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

要更新系统以需要autoload.php,请将以下内容添加到website / protected / config / main.php

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

在网站/.p中的.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