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

问题描述 投票:1回答:1

似乎Yii现在很流行,所以使用composer(而不是手动安装你的PHP库),所以我决定给他们一个尝试。

总之,这是我的步骤。

  1. mkdir "yii-dev" in varwwwhtml (我的盒子运行Debian 7 64)

  2. mkdir -p yii-devprotectedconfig。

  3. 在yii-devprotectedconfig中创建一个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-devconfig中添加控制台.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. 最后,在yii-devprotectedconfig中添加ComposerCallback.php。内容有点长,所以我没有把它放在这里。相反,它可以在下面找到 http:/www.shanedowling.comyii-with-composer

然后当我运行 "composer install "时,我得到了这样的结果。

$ composer install

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

  • no] yes

PHP Fatal error: Class 'config\Yii' not found in [yesvarwwwhtmlyii-devprotectedconfigComposerCallback.php第182行。

致命的错误,在varwwwhtmlyii-devprotectedconfigComposerCallback.php第182行没有找到'config\Yii'类。在varwwwhtmlyii-devprotectedconfigComposerCallback.php第182行没有找到'config\Yii'类。

如何解决这个问题?

php yii
1个回答
0
投票

这可能是个很老的问题了。但我今天还是遇到了同样的问题,要给我们现有的一个使用Yii1.1的老系统配置composer。这就是我所做的,它的工作。

我的项目结构是。

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

所以,我在网站目录下安装了composer。

在本地安装composer

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

如果要更新系统,要求自动加载.php,在websiteprotectedconfigmain.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.compostsadd-thecomposer-to-theapplication-on-yii。

© www.soinside.com 2019 - 2024. All rights reserved.