alfredogaliza / mormon
一个简单的ORM
1.2.0
2021-04-26 03:09 UTC
Requires
- php: >=7.2.0
Requires (Dev)
- phpdocumentor/phpdocumentor: ^3.0
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2024-09-23 19:44:43 UTC
README
我的ORM或者什么都没有。
对象关系映射库。该库的提议很简单:零配置。无需注解或声明。
如何使用?
Comment.php 文件
namespace App;
use Mormon\Mormon;
class Comment extends Mormon {
public function getPost(){
return $this->getOne(Post::class);
}
}
Post.php 文件
namespace App;
use Mormon\Mormon;
class Post extends Mormon {
public function getComments(){
return $this->getMany(Comment::class)
}
}
index.php 文件
require 'vendor/autoload.php';
use Mormon\Mormon;
use App\Post;
use App\Comment;
// Configurações necessárias para conexão com o banco.
$config = [
"dsn" => "mysql:host=localhost;dbname=test",
"user" => "root",
"password" => "12345",
"options" = []
];
// Inicialização da conexão
Mormon::init($config);
// ... Criando um novo registro no BD
$post = new Post();
$post->set('timestamp', date('Y-m-d H:i:s'))
->set('title', 'Meu primeiro post')
->set('text', 'Hora de gravar!')
->create();
// ... Atualizando os dados no BD
$post->set('text', 'Hora de atualizar!')->update();
// ... Obtendo informações de relacionamentos.
$post = new Post($id);
$comments = $post->getComments();
foreach ($comments as $comment){
// Faça alguma coisa com os objetos.
}
就这么多。
使用了哪些约定?
- 预期每个表都应该有一个简单的主键(PK);
- 使用字段
id
作为主键,但可以通过在实现的实体作用域中设置属性public static $pk = 'id'
来修改。 - 对于表名,执行 CamelCase → snake_case 转换,但可以使用不同的名称配置属性
public static $table = 'tabela'
; - 对于关系,外键(FK)采用字段名作为表名_PK。请参阅文档以获取外键键自定义配置的详细信息。