网上有很多关于包含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
答案 0 :(得分:4)
Zend Dom和所有其他Zend Framework 2组件独立于框架本身而开发。所有这些都是单独维护的,并且这些组件分别存在自定义存储库。
我认为使用composer时,没有框架本身使用此组件的最佳方式。我们生活在开源时代,而今年是2014年。您只需要在packagist上搜索,而不是尝试通过手动包含/要求使用Zend Dom(或任何第三方库)代码库。请使用作曲家并按照PSR standards。
要将作曲家集成到您自己的应用程序中,请打开控制台,然后输入:
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查询实例。 (我假设你已经阅读了autoloading process)
答案 1 :(得分:1)
通过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);