标签: zend-autoloader

如何将第三方库添加到magento?

该库不需要与magento集成,它主要是与API通信的包装器.

我希望能够使用此库并在控制器或模型中进行这些API调用.

我在哪里可以放图书馆?如何将它们添加到自动装带器?

php zend-framework magento zend-autoloader magento-1.7

21
推荐指数
2
解决办法
3万
查看次数

在Zend Framework(v1)应用程序中使用PHP命名空间

在当前稳定版本的Zend Framework(1.11)中,是否可以使用PHP命名空间处理应用程序类?

Application\Form\Abc instead of Application_Form_Abc
Application\Model\Xyz instead of Application_Model_Xyz
etc.
Run Code Online (Sandbox Code Playgroud)

从v1.10开始,ZF支持自动加载命名空间,并且在包含命名空间库时它工作正常,但在尝试使用应用程序类执行相同的工作时我没有成功.

php zend-framework namespaces autoload zend-autoloader

13
推荐指数
2
解决办法
9734
查看次数

Zend Framework 2自动加载

我刚刚开始研究Zend Framework 2(并且是ZF的新手),在用户指南中,他们在添加新模块时使用自动加载.但是,我觉得对于一个新秀来说这个解释非常具有挑战性.他们Module.php在模块目录中添加一个文件,其中包含以下代码:

public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
Run Code Online (Sandbox Code Playgroud)

现在我做了一些挖掘,试图找出这个自动加载的全部内容.据我所知,自动加载使用spl_autoload_register()并且是一种避免require_once()在代码中无处不在的方法.因此,当尝试使用未定义的类时,autoload()将运行已注册的方法,该方法仅执行数组查找,并且如果已添加,则包括如下所示的文件.

// Zend/Loader/ClassMapAutoloader.php
public function autoload($class)
{
    if (isset($this->map[$class])) {
        require_once $this->map[$class];
    }
}
Run Code Online (Sandbox Code Playgroud)

由于性能,这似乎很聪明.我希望我刚才写的是正确的.基于此,我试图getAutoloaderConfig()从第一个代码片段中弄清楚发生了什么,但我很困惑.看起来好像使用了这个方法返回的数组AutoloaderFactory::factory(),但我不确定是出于什么目的.使用选项实例化自动加载器,但确实如此,我不确定.我想数组的第二个条目指定在哪里找到模块命名空间的源文件 - 至少这是我的猜测.然而,我第一个条目并不确定.在用户指南中,它说明如下:

在开发过程中,我们不需要通过类图加载文件,因此我们为类图自动加载器提供了一个空数组.

该文件只返回一个空数组.我不确定这个ClassMapAutoloader的目的是什么.

对不起,如果我的观点不清楚; 基本上我试图弄清楚发生了什么getAutoloaderConfig()以及mymodule/autoload_classmap.php用于什么.如果有人能够对此有所了解,那将非常感激!

php zend-autoloader zend-framework2

12
推荐指数
2
解决办法
1万
查看次数

Zend框架:自动加载类库

我在这里定义了一个类库.../projectname/library/Me/Myclass.php定义如下:

<?php
class Me_Myclass{
}
?>
Run Code Online (Sandbox Code Playgroud)

我有以下引导程序:

<?php

/**
 * Application bootstrap
 * 
 * @uses    Zend_Application_Bootstrap_Bootstrap
 */
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    /**
     * Bootstrap autoloader for application resources
     * 
     * @return Zend_Application_Module_Autoloader
     */
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Default',
            'basePath'  => dirname(__FILE__),
        ));
        $autoloader->registerNamespace('Me_');
        return $autoloader;
    }

    /**
     * Bootstrap the view doctype
     * 
     * @return void
     */
    protected function _initDoctype()
    {
        $this->bootstrap('view');
        $view = $this->getResource('view');
        $view->doctype('XHTML1_STRICT');
    }

    /**
     * Bootstrap registry and store …
Run Code Online (Sandbox Code Playgroud)

php zend-framework autoload zend-autoloader

8
推荐指数
1
解决办法
2万
查看次数

ZF2 - autoloader classmap致命错误'提供的地图文件不存在'

我刚刚开始学习Zend Framework,但我的模块有问题.请看下面的错误.我还不知道还有什么可以告诉您更多信息.请让我知道我需要向您展示解决问题的方法.

致命错误:未捕获的异常'Zend\Loader\Exception\InvalidArgumentException

Fatal error: Uncaught exception
'Zend\Loader\Exception\InvalidArgumentException' with message 'Map
file provided does not exist. Map file: "C:\Program
Files\xampp\htdocs\zend_intro\module\Album/autoload_classmap.php"' in
C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php:175
Stack trace: #0 C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php(85):
Zend\Loader\ClassMapAutoloader->loadMapFromFile('C:\Program File...')
 #1 C:\Program Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php(121):
Zend\Loader\ClassMapAutoloader->registerAutoloadMap('C:\Program
File...') #2 C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php(64):
Zend\Loader\ClassMapAutoloader->registerAutoloadMaps(Array) #3
C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Lo
in C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php
on line 175

php zend-autoloader zend-framework2

7
推荐指数
1
解决办法
7562
查看次数

6
推荐指数
1
解决办法
6014
查看次数

从另一个模块的控制器扩展控制器?

我有一个名为'olo'的模块,可以处理我们所有的在线订购.

现在我已经制作了一个名为"olosec"的新模块,因为我希望制作一个不同的版本,稍微改变流程,并在某些控制器中进行其他一些更改.

我是否可以使用'olo'中的控制器在'olosec'中扩展控制器?

截至目前我已经尝试过了

class Olosec_CartController extends Olo_CartController
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误

Warning: include_once(Olo/CartController.php): failed to open stream: 
No such file or directory in /httpdocs/library/Zend/Loader.php on line 146 Warning:
include_once(): Failed opening 'Olo/CartController.php' for inclusion.
bla bla bla (include path) bla bla bla
Run Code Online (Sandbox Code Playgroud)

我的目录结构是这样的(谢谢tree \F \AEditPlus ++)

+---application
|   +---views
|   |   +---scripts
|   |   +---layouts
|   |   |   +---default
|   |   |   +---admin
|   |   +---languages
|   |   +---helpers
|   +---modules
|   |   +---admin
|   |   +---mobile
| …
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-autoloader

6
推荐指数
1
解决办法
2014
查看次数

Smarty 3如何与Zend Framework 2一起使用?

我很久以前就使用过PHP5,目前我正在尝试更新我的知识,并在Zend Framework 2和Smarty 3的知识中为可能的项目增加知识.

我目前正试图弄清楚如何使用Smarty 3作为Zend Framework 2的替代/补充.

我可以通过Google在此主题上找到的所有内容:

  1. 已过时(例如Zend Framework 1)
  2. 假设我对Zend和Smarty的工作知识比我实际做的更为亲密.

可有人向我解释,就好像我是9,使用Zend主干应用程序作为我的出发点:

  1. 在什么目录/文件夹(使用完全限定的路径),我应该解压缩Smarty-3.1.12包?

  2. 我需要创建哪些类,它们究竟需要包含哪些类,以及它们应存储在何处?

  3. 需要修改哪些文件,以及如何使Smarty可以在我的模块中查看?

  4. 参考上面创建的类,如何从AZ中使用这些类(例如,包括在适当的类中,分配值,创建输出)?

php include zend-autoloader smarty3 zend-framework2

6
推荐指数
1
解决办法
4889
查看次数

Zend Framework - 扩展模块控制器

我有以下目录结构:

modules/
  api/
    controllers/
      ApiController.php
      InventoryController.php
      OtherController.php
Run Code Online (Sandbox Code Playgroud)

init()方法在多个控制器中很常见,所以我想将它重构为父控制器类,例如:

class Api_ApiController extends Zend_Controller_Action
{
    public function init()
    {
        // common code
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试:

class Api_InventoryController extends Api_ApiController
Run Code Online (Sandbox Code Playgroud)

我明白了:

致命错误:第4行的/application/modules/api/controllers/InventoryController.php中找不到类'Api_ApiController'

为什么Zend Framework没有将Api_ApiController映射到modules/api/controllers/ApiController.php?

我已经找到了解决这个问题的方法,将ApiController放在库中并注册命名空间,但这对我来说似乎是个黑客攻击.

zend-framework module zend-controller zend-autoloader

4
推荐指数
1
解决办法
3756
查看次数

PHPUnit代码覆盖如何忽略我的自动加载器?

我的phpunit配置中有一个运行引导程序的引导程序Zend\Loader\StandardAutoloader.php.我可以通过添加PHPUnit代码覆盖来忽略它

<filter>
   <blacklist>
       <directory suffix=".php">/absolute/path/to/zf</directory>
   </blacklist>
</filter>
Run Code Online (Sandbox Code Playgroud)

到PHPUnit配置XML文件.但我必须指定绝对路径.我希望它是一个相对路径,但PHPUnit并没有忽略代码覆盖中的Zend文件夹.当我在家工作时,我不想添加不同的位置,我不希望其他开发人员添加自己的路径.Zend Framework在php.ini include_path设置中,但这不起作用:

<filter>
   <blacklist>
       <directory suffix=".php">./Zend</directory>
   </blacklist>
</filter>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

php phpunit zend-framework code-coverage zend-autoloader

4
推荐指数
1
解决办法
5039
查看次数