包括Yii中的外部库

use*_*521 9 php namespaces class yii

如何在Yii应用程序的任何位置调用这些库函数?我有一个图书馆:

#mylib.php

<?php
class MyLib {
    public function foo()
    {
        echo "hello!";
    }
}
Run Code Online (Sandbox Code Playgroud)

并希望能够在我的Yii应用程序中调用此功能:

MyLib::foo();
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里放置我的图书馆或如何/在哪里导入它.这只是我正在尝试做的一个例子,但我正在尝试创建一个具有多个名称空间的库,以便我可以访问该库并在导入后访问所有名称空间.

Ole*_*leg 17

有几种方法.

  1. 注册库的自动加载器:

    // Enable Zend autoloader
    spl_autoload_unregister(array('YiiBase', 'autoload')); // Disable Yii autoloader
    Yii::import('site.common.lib.*'); // Add Zend library to include_path
    Yii::import('site.common.lib.Zend.Loader.Autoloader', true); // Require Zend autoloader
    spl_autoload_register(array('Zend_Loader_Autoloader', 'autoload')); // Register Zend autoloader
    spl_autoload_register(array('YiiBase', 'autoload')); // Register Yii autoloader
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将库添加到config/main.php中的import部分:

    return array(           
        // Autoloading
        'import' => array(
            'application.lib.*',
            'application.components.*',
            'site.common.extentions.YiiMongoDbSuite.*',
        ),
    );
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在应用程序的任何位置自动加载:

    Yii::import('application.lib.*');
    
    Run Code Online (Sandbox Code Playgroud)