josegonzalez / cakephp-entity
在您的 CakePHP 应用程序中使用模型对象/类而不是数组
Requires
- php: >=5.4
- composer/installers: *
This package is not auto-updated.
Last update: 2020-01-24 15:17:47 UTC
README
CakePHP 实体插件
背景
- find() 现在返回对象数组而不是数组数组。
- 与标准模型100%兼容。
- 开源。可在 GitHub 上找到。MIT 许可证。
- CakePHP 2.4+, PHP 5.4+
最初: https://github.com/kanshin/CakeEntity
要求
- CakePHP 2.4
- PHP 5.3
- 耐心
安装
[使用 Composer]
将插件添加到项目的 composer.json
文件中 - 例如:
{
"require": {
"josegonzalez/cakephp-entity": "dev-master"
}
}
因为此插件在其自己的 composer.json
中设置了类型 cakephp-plugin
,所以 Composer 会将其安装在您的 /Plugins
目录中,而不是在常规 vendors 文件中。建议您将 /Plugins/Entity
添加到您的 .gitignore 文件中。(为什么?阅读此内容。)
[手动]
- 下载此内容: http://github.com/josegonzalez/cakephp-entity/zipball/master
- 解压缩下载内容。
- 将生成的文件夹复制到
app/Plugin
- 将您刚才复制的文件夹重命名为
Entity
[GIT 子模块]
在您的应用程序目录中键入
git submodule add -b master git://github.com/josegonzalez/cakephp-entity.git Plugin/Entity
git submodule init
git submodule update
[GIT 克隆]
在您的 Plugin
目录中键入
git clone -b master git://github.com/josegonzalez/cakephp-entity.git Entity
[Composer]
将以下内容添加到您的 composer.json
文件中
"cakephp-entity": "1.0.0"
然后运行 composer update
命令以安装依赖项。
启用插件
在 2.0 中,您需要在您的 app/Config/bootstrap.php
文件中启用插件
CakePlugin::load('Entity');
如果您已经使用了 CakePlugin::loadAll();
,则这不是必需的。
使用方法
CakeEntity 不会更改您的当前安装。您必须通过指定使用它来启用功能。这是出于兼容性原因。
将 Table
作为您希望激活插件的模型超级类。
<?php App::uses('Table', 'Entity.ORM'); class Post extends Table { } ?>
然后,在 find
的选项中指定 entity
=> true
<?php $entity = $this->Post->find('first', array('entity' => true)); ?>
您还可以将模型上的 $entity
属性设置为 true 以返回实体
<?php $this->Post->entity = true; $entity = $this->Post->find('first'); ?>
现在,$result
包含对象(实体)数组。
实体类
默认情况下,使用 Entity
类作为对象的结果。如果有与模型名称相同的类,则使用该类。例如,对于“Post”模型,将使用“PostEntity”类。
<?php App::uses('Table', 'Entity.ORM'); App::uses('PostEntity', 'Model/Entity'); class Post extends Table { } ?>
<?php App::uses('Entity', 'Model/Entity'); class PostEntity extends Entity { // Your custom logic here } ?>
实体对象的数组访问
可以使用数组语法访问实体的属性
echo $post['title']; // == $post->title
数组访问还可以与Smarty一起使用
Hello, my name is {$post.author.name|h}.
数组访问引入了两个重要特性
- 访问控制以保障安全
- 缓存以提高性能
更多信息
介绍CakeEntity(东京PHP学习,2011年10月1日)
许可
版权(c)2012 Jose Diaz-Gonzalez
在此特此授予任何获取本软件及其相关文档副本(以下简称“软件”)的个人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,以及允许向软件提供者提供软件的人进行此类操作,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任承担责任,无论这些责任是因合同、侵权或其他行为而引起的,无论是与软件本身、使用软件还是其他方式相关。