minond / model
对象模型
v1.2.0
2014-03-28 01:45 UTC
Requires
- php: >=5.4.0
- minond/utilitatis: 1.*
This package is not auto-updated.
Last update: 2024-09-23 14:07:54 UTC
README
易于创建和使用。轻量级但易于扩展的模型。
使用魔法调用方法模拟获取器和设置器
use Efficio\Dataset\Model; class User extends Model { protected $first_name; protected $last_name; protected $full_name; }
$me = new User; // methods $me->setFirstName('Marcos'); $me->setLastName('Minond'); // or properties $me->first_name = 'Marcos'; $me->last_name = 'Marcos';
获取器和设置器方法都可以被覆盖
use Efficio\Dataset\Model; class User extends Model { protected $first_name; protected $last_name; protected $full_name; public function getFullName() { return implode(' ', [ $this->first_name, $this->last_name ]); } }
$me = new User; $me->first_name = 'Marcos'; $me->last_name = 'Marcos'; echo $me->full_name; // outputs 'Marcos Minond'
使用特性来指定模型如何存储
use Efficio\Dataset\Model; use Efficio\Dataset\Storage\Model\DatabaseStorage; class User extends Model { use DatabaseStorage; protected $first_name; // ... }
当前存储特性包括
Efficio\Dataset\Storage\Model\DatabaseStorage
- 使用 PDO 存储到数据库。Efficio\Dataset\Storage\Model\FileStorage
- 存储到平面文件。Efficio\Dataset\Storage\Model\NullStorage
- 无存储。Efficio\Dataset\Storage\Model\SessionStorage
- 存储在$_SESSION
数组中
由于存储信息在模型级别定义,因此可以使用任何自定义存储。
配置存储方法
DatabaseStorage
// User uses DatabaseStorage trait User::setConnection(new PDO('sqlite::memory:'));
FileStorage
// User uses FileStorage trait User::setDirectory('./cache/models/');