web上有很多关于包括ZEND的内容,但我仍然不知道如何简单地使用它(没有骨架)(在这种情况下,我只想使用Zend'Dom'Query
)
我想:
1)简单地在一个应用程序中包含完整的ZEND 2.3库
或
2)包含一个ZEND 2.3模块
我正在使用NGINX,但实际上我只是想通过PHP包含它。有什么提示、技巧或链接吗?
我所做的是:
include('./library/Zend/Dom/Query.php');
$c = curl_init($u);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($c);
$dom = new Zend'Dom'Query($html);
$results = $dom->execute('.foo .bar a');
...
错误是:Fatal error: Class 'Zend_Dom_Query' not found in /SOMEDIR/myfile.php on line 12
Zend Dom和所有其他独立于框架本身开发的Zend Framework 2组件。所有这些组件都是单独维护的,并且存在针对这些组件的定制存储库。
我认为使用这些组件最好的方法是不用框架本身,使用composer。现在是2014年,我们生活在开源时代。你所需要做的就是在packagist上进行搜索,而不是试图通过手动包括/要求到代码库中来使用Zend Dom(或任何第三方库)。请使用composer并遵循PSR标准。
要将composer集成到您自己的应用程序中,打开控制台并简单地键入:
cd /path/to/your/project
php -r "readfile('https://getcomposer.org/installer');" | php
安装完成后,使用以下命令在项目中添加zend-dom
依赖项:
php composer.php require zendframework/zend-dom:2.3.*
现在,您可以在代码的任何地方键入new Zend'Dom'Query()
来创建一个新的dom查询实例。(我假设您已经阅读了自动加载过程)
通过PHP包含它的一个简单方法是:
1。确保Zend目录在php include_path
上。假设Zend目录在library
文件夹中,那么在index.php
文件中将有如下内容:
$path= array();
$path[] = '.';
$path[] = './../library';
$path[] = get_include_path();
$path= implode(PATH_SEPARATOR,$path);
set_include_path($path);
2。现在只需先包含Zend/Loader/StandardAutoloader.php
,然后使用它来加载其他类。你可以这样做:
require_once 'Zend/Loader/StandardAutoloader.php';
$autoloader = new Zend'Loader'StandardAutoloader(array(
'fallback_autoloader' => true,
));
$autoloader->register();
使用$autoloader->register()
,您不需要在每次想要调用类时都包含文件。你只需要实例化你的类:
$dom = new Zend'Dom'Query($html);