GithubHelp home page GithubHelp logo

kanshin / cakeentity Goto Github PK

View Code? Open in Web Editor NEW
46.0 14.0 18.0 274 KB

CakePHP model extension. With this plugin, your data is no longer just an array of data, but the real object. Works with CakePHP 1.3

PHP 100.00%

cakeentity's Introduction

What is CakeEntity?

  • find() now returns array of objects instead of array of arrays.
  • Plugin for CakePHP
  • 100% compatible with the standard Model.
  • Open source. Available in GitHub. MIT Lisense.
  • CakePHP 1.3, PHP 5.2 >

https://github.com/kanshin/CakeEntity

Installation

Clone in plugin directory with name entity:

git clone git://github.com/kanshin/CakeEntity.git plugins/entity

Or download an archive and extract in plugins/entity.

How to use

CakeEntity don't change anything with just the installation. You have to enables the functionality by indicating to use it. This is for compati- bility reason.

Use EntityModel as the super class of models where you want to activate.

App::import('Model', 'Entity.EntityModel');

class Post extends EntityModel {
    ...

Then in the options of the find, specify entity => true:

$entity = $this->Post->find('all', array(
    'conditions' => ...
    'order' => ...
    'entity' => true, 
));

Now the $result includes the array of objects (entities).

Entity class

Entity class is the default class used as the result of objects. If there is a class with the model's name + 'Entity', that class is uses instead. (i.e. For model "Post", the class "PostEntity" is used)

Array access for Entity object

Entity's property can be accessed using array syntax.

echo $post['title']; // == $post->title

Array access is vest suited with using with Smarty.

Hello, my name is {$post.author.name|h}.

Also array access introduces two important feature:

  • access controll for security.
  • cache for performance.

For more information

Introducing CakeEntity (PHP study in Tokyo 10/1/2011)

cakeentity's People

Contributors

basuke avatar josegonzalez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cakeentity's Issues

Problem with hasMany association with empty result

josegonzalez has pointed at here.

One thing that is weird is when you have something like

Project hasMany Issue

$project = $this->Project->find('first', array(
'conditions' => array('Project.id' => 1),
'contain' => 'Issue',
));
If there are no issues for Project 1, then $project->issue exists (and it's empty), while $project->issues doesn't exist. The reverse occurs when there are issues in the resultset. I don't know the answer to this one, but I found it while looking at the codeblock in this commit.

entity attributes will be underscored forcedly

array of data:

array(
    'Model' => array(
        'camelBack' => 'hoge'
    )
)

will be:

Object(Entity) {
    camel_back: 'hoge'
}

Why this converting is done?
I prefer name of attribute remaining "as is".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.