josegonzalez/cakephp-entity

此软件包已被废弃,不再维护。没有推荐替代软件包。

在您的 CakePHP 应用程序中使用模型对象/类而不是数组

安装量: 28,860

依赖项: 0

推荐者: 0

安全: 0

星标: 30

关注者: 6

分支: 18

公开问题: 1

类型:cakephp-plugin

3.0.2 2015-07-06 19:28 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:17:47 UTC


README

Build Status Coverage Status Total Downloads Latest Stable Version

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 文件中。(为什么?阅读此内容。)

[手动]

[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

在此特此授予任何获取本软件及其相关文档副本(以下简称“软件”)的个人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,以及允许向软件提供者提供软件的人进行此类操作,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任承担责任,无论这些责任是因合同、侵权或其他行为而引起的,无论是与软件本身、使用软件还是其他方式相关。