【问题标题】:Using Phpcassa in Yii在 Yii 中使用 Phpcassa
【发布时间】:2013-05-02 15:41:21
【问题描述】:

有没有人能够在 Yii 应用程序中使用 Phpcassa。我已经尝试将 phpcassa 文件夹添加到我已添加到配置中以进行自动加载的组件中,但它无法识别 phpcassa 类并且它们没有被自动加载。

我已经在一个独立的 php 文件中使用了 phpcassa 代码,并且一切正常,所以我知道一切都准备好了,只是我无法在 Yii 中加载 phpcassa 类。

任何帮助将不胜感激。

戴夫

我设法加载了必要的类。这可能不是正确的方法,但它对我有用。 我卸载了 Yii 自动加载,像 phpcassa 示例一样添加了我的类和 phpcassa 自动加载,然后再次注册了自动加载。

spl_autoload_unregister(array('YiiBase', 'autoload')); // Disable Yii autoloader
require_once(__DIR__.'/../extensions/lib/autoload.php');
use phpcassa\Connection\ConnectionPool;
use phpcassa\ColumnFamily;
use phpcassa\ColumnSlice;
use phpcassa\SystemManager;
use phpcassa\Schema\StrategyClass;
spl_autoload_register(array('YiiBase', 'autoload')); 

感谢克里斯的帮助

【问题讨论】:

    标签: php yii cassandra phpcassa


    【解决方案1】:

    应用程序组件目录会自动加载,因此您无需更改配置。我不熟悉 phpcassa,但要检查的内容包括:-

    • 文件名是否与类名相同?
    • phpcassa 是否包含子类?默认情况下不会自动加载这些内容。

    edit:嗨,尝试在引导程序中使用 Yii::registerAutoloader。对于 Zend,我使用如下代码:-

    Yii::import('application.vendors.*');
    require "Zend/Loader/Autoloader.php";
    Yii::registerAutoloader(array('Zend_Loader_Autoloader',  'autoload'), true);
    

    【讨论】:

    • 感谢克里斯的回复,我认为您对子类的看法可能是正确的。使用 PHPCassa 时,它有自己的自动加载器,我不确定这对 Yii 自动加载有何影响。这是 Phpcassa 示例中的代码示例,它加载 phpcassa 类 require_once(DIR.'/../lib/autoload.php');使用 phpcassa\Connection\ConnectionPool;
    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多