OrientDB PHP Library
什么是Orient?
一组用于从PHP中使用和管理任何OrientDB实例的工具。
Orient包括:
- HTTP协议绑定
- 查询构建器
- 数据映射器(Object Graph Mapper)
克隆后
为了能够运行Orient提供的示例和测试套件,您必须首先输入克隆存储库的根,并使用Composer初始化所有需要的依赖项。 我们在 bin/ 子目录中提供了一个实用程序脚本来简化此过程,因此您可以执行以下操作:
$ ./bin/initialize-dependencies.sh
绑定的当前状态
绑定完成:它是一个HTTP客户端包装器,其中一些方法绑定到OrientDB的HTTP接口。
它的用法很简单:
$parameters = Doctrine\OrientDB\Binding\BindingParameters::create('http://admin:admin@127.0.0.1:2480/demo'); $orient = new Doctrine\OrientDB\Binding\HttpBinding($parameters); $output = $orient->query("SELECT FROM Address"); foreach ($output->getResult() as $address) { var_dump($address->street); }
使用PHP5.3标准自动加载器( https://gist.github.com/221634 )。
查询构建器的当前状态
查询构建器已完成,未来我们将考虑OrientDB的集成 Graph Edition: http://code.google.com/p/orient/wiki/GraphEdTutorial 。
要利用QB,你只需要实例化一个Query对象:
use Doctrine\OrientDB\Query\Query; $query = new Query(); $query->from(array('users'))->where('username = ?', "admin"); echo $query->getRaw(); // SELECT FROM users WHERE username = "admin"
Query对象包含许多子命令,如SELECT,DROP,GRANT,INSERT 等等......
您也可以使用这些命令:
use Doctrine\OrientDB\Query\Command\Select; $select = new Select(array('users')); echo $select->getRaw(); // SELECT FROM users
然而,我们强烈反对这种做法:命令会改变,查询被视为门面, - 希望 - 不是。
你最好看一下Query类的测试以及它的子命令来获取 全面了解可用的命令:以便与OrientDB的本机相匹配 类似SQL的合成器我们试图保留这些名称和东西,但有一些东西 已经改变了。
映射器的当前状态
我们开始研究mapper,现在它能够将OrientDB响应(在StdObject中转换)映射到注释映射的POPO。 还有收藏品可以正常保湿。
然而,它的工作量很大,所以不要指望能够在几周内使用它。接下来的步骤是:
- 水合OrientDB本地数据类型(包括浮点数,嵌入集|链接列表,嵌入式地图|链接列表和其他许多...)
- 提供基础知识库类
- 从ODM到OrientDB的持久性实现
实用程序
Orient还为PHP开发人员提供了一些实用程序:它们是Dijkstra算法的实现。
use Doctrine\OrientDB\Graph\Graph; use Doctrine\OrientDB\Graph\Vertex; use Doctrine\OrientDB\Graph\Algorithm\Dijkstra; $graph = new Graph(); $rome = new Vertex('Rome'); $paris = new Vertex('Paris'); $london = new Vertex('London'); $rome->connect($paris, 2); $rome->connect($london, 3); $paris->connect($london, 1); $graph->add($rome); $graph->add($paris); $graph->add($london); $algorithm = new Dijkstra($graph); $algorithm->setStartingVertex($rome); $algorithm->setEndingVertex($london); var_dump($algorithm->solve());
测试
测试套件可以通过从存储库的根目录执行 phpunit 来启动。
默认情况下,该套件不会执行集成测试,以验证我们的实现对正在运行的OrientDB实例的正确行为。 由于集成测试使用 @组 注释,可以通过在 phpunit.xml 中默认启用它们,方法是向排除组列表中的 integration 组添加注释, 如果您只是想在一次执行的基础上执行它们,请首先使用此脚本加载装置
php ./test/Integration/fixtures/load.php
然后使用附加的 --group 参数启动套件:
phpunit --group __nogroup__,integration
也可以使用 PHP_CodeBrowser 生成一个显示库的代码健康状况的HTML报告,并与以下依赖关系配对 (除了 phpunit ):
- phpcpd
- phpdcd
- phploc
- phpmd
- phpdepend
- phpcb
从存储库的根目录执行 ./bin/report.sh 将在 log/report/index.html 中生成报告。
要求
这些是使用库的要求:
- PHP >= 5.3.3
- OrientDB >= 1.2.0
为了启动测试套件PHPUnit 3.6是必需的。
跟踪器和软件生命周期
请参阅: https://github.com/doctrine/orientdb-odm/issues
更多文件
如果你想看一看PHPDoc文档,你可以使用doxygen:
sudo apt-get install doxygen
然后使用docs目录下提供的脚本:
doxygen docs/orient.d
它将在文件夹docs/html下生成技术文档。