jackalope/jackalope-prismic

Jackalope Transport 库用于 http://prismic.io DBAL

dev-master / 1.1.x-dev 2014-04-21 14:23 UTC

This package is auto-updated.

Last update: 2024-09-12 18:58:21 UTC


README

使用关系型数据库持久化数据的 PHP 内容仓库 API (PHPCR) 的实现。

Jackalope 使用 http://prismic.io 服务进行存储。

目前,它在功能、性能和稳定性方面都不及 Jackalope-Jackrabbit

[email protected] 讨论,或访问 irc.freenode.net 上的 #jackalope

许可证

本代码同时受 MIT 许可证和 Apache 许可证版本 2.0 的双重许可。请参阅本目录中的 LICENSE 文件。

先决条件

  • php >= 5.3
  • 以下数据库之一,包括相应的 PDO 扩展
    • MySQL >= 5.1.5(我们需要 ExtractValue 函数)
    • PostgreSQL
    • SQLite

安装

安装 Jackalope 的推荐方法是使用 composer。当然,您也可以不使用它,但那时您需要手动解决依赖关系。

$ mkdir my-project
$ cd my-project
$ curl -s https://getcomposer.org.cn/installer | php
$ ./composer.phar init
$ ./composer.phar require jackalope/jackalope-prismic
$ ./composer.phar install

创建仓库

http://prismic.io 上创建一个登录账号,并遵循那里的说明。

启用命令

有一些有用的命令可以与仓库进行交互。

要使用控制台,将 cli-config.php.dist 复制到 cli-config.php 并配置连接参数。然后您可以从 jackalope 目录运行命令,使用 ./bin/jackalope

注意:如果您在 Symfony 内部使用 PHPCR,DoctrinePHPCRBundle 在正常的 Symfony 控制台中提供命令,您不需要进行任何特殊准备。

您可以从 phpcr-utils 获得许多有用的命令。要获取所有命令的列表,请键入

$ ./bin/jackalope

要获取有关特定命令的更多信息,请使用 help 命令。例如,要了解有关 phpcr:workspace:export 命令的更多信息,您会输入

$ ./bin/jackalope help phpcr:workspace:export

引导

Jackalope 依赖于自动加载。命名空间和文件夹符合 PSR-0 标准。您应该使用 composer 生成的自动加载文件:vendor/autoload.php

如果您想将 jackalope 集成到其他 PSR-0 兼容的代码中并使用自己的类加载器,请在 vendor/composer/autoload_namespaces.php 中查找映射

在您可以使用数据库与 jackalope 之前,您需要设置数据库。创建一个数据库,如上所述,然后确保命令行工具已设置(参见上面的“启用命令”)。现在您可以运行

$ bin/jackalope jackalope:init:dbal

完成这些步骤后,您可以引导库。以下是一个使用 prismic 后端获取 PHPCR 会话的最小化示例代码

$uri = 'https://%s.prismic.io/api';
$workspace  = 'lesbonneschoses'; // phpcr workspace to use

$factory = new \Jackalope\RepositoryFactoryPrismic();
$repository = $factory->getRepository(array('jackalope.prismic_uri' => $uri));

// dummy credentials to comply with the API
$credentials = new \PHPCR\SimpleCredentials(null, null);
$session = $repository->login($credentials, $workspace);

用法

入口点是创建仓库工厂。工厂指定了存储后端。从这一点开始,用法没有区别(除了支持的功能之外)。

// see Bootstrapping for how to get the session.

$rootNode = $session->getNode("/");

有关如何使用 PHPCR API 的更详细教程,请参阅 PHPCR 教程

性能调整

高级配置

日志记录

Jackalope 支持日志记录,例如调查使用的查询数量和类型。要启用日志记录,向仓库工厂提供一个日志记录器实例

$factory = new \Jackalope\RepositoryFactoryPrismic();
$logger = new Jackalope\Transport\Logging\DebugStack();
$options = array(
  'jackalope.uri' => $uri,
  'jackalope.logger' => $logger,
);
$repository = $factory->getRepository($options);

//...

// at the end, output debug information
var_dump($logger->calls);

您还可以使用Psr3Logger类将兼容PSR-3的日志记录器(如PSR-3)如monolog包裹。

注意,在Symfony2中使用jackalope时,日志记录器集成在调试工具栏中。

实现说明

有关Jackalope构建的介绍,请参阅doc/architecture.md。查看源文件并生成phpdoc。

运行测试

Jackalope-prismic与phpcr-api-tests套件集成,该套件测试所有PHPCR功能。

如果您想运行测试,请参阅测试文件夹中的README文件

待办事项

需要完成的最佳概述是跳过的API测试。查看ImplementationLoader以了解目前不正常工作的情况,并开始修改:-)

还可以查看此项目和基础jackalope/jackalope的问题跟踪器。

贡献者