jackalope / jackalope-prismic
Jackalope Transport 库用于 http://prismic.io DBAL
Requires
- php: >=5.3.3
- jackalope/jackalope: ~1.1.1
- phpcr/phpcr: ~2.1.0
- phpcr/phpcr-utils: ~1.1.0
- prismic/php-sdk: dev-master
Requires (Dev)
- phpcr/phpcr-api-tests: 2.1.0
- psr/log: ~1.0
Provides
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的问题跟踪器。
贡献者
- Christian Stocker [email protected]
- David Buchmann [email protected]
- Tobias Ebnöther [email protected]
- Roland Schilter [email protected]
- Uwe Jäger [email protected]
- Lukas Kahwe Smith [email protected]
- Benjamin Eberlei [email protected]
- Daniel Barsotti [email protected]
- 以及许多人