mitch / laravel-doctrine
Requires
- php: >=5.5.0
- doctrine/migrations: 1.*
- doctrine/orm: 2.5.*
- illuminate/support: 4.*|5.*
Requires (Dev)
- mockery/mockery: dev-master
- phpunit/phpunit: 3.7.*
README
Doctrine 2 实现,与 Laravel 4 兼容。
文档
在此处开始阅读完整的文档或直接跳转到特定章节。
注意事项
目前 Doctrine\migrations 版本 1.0 仍处于 alpha 版。因此,Composer 安装可能需要您将您的 composer.json
中的 minimum-stability
更改为 dev
。
如果您不想影响其他包的稳定性,您可以在您的 composer.json
中添加以下属性
"prefer-stable": true
安装
首先通过 Composer 安装包。编辑您的项目 composer.json
文件,以添加 mitchellvanw/laravel-doctrine
依赖。
此包仍处于早期阶段,但功能齐全。API 可能会有轻微变化,但不会进行重大更改。
"require": { "mitchellvanw/laravel-doctrine": "0.5.*" }
接下来,通过终端使用 Composer 更新您的项目。
php composer.phar update
一旦安装了包,您需要添加服务提供者。打开您的 app/config/app.php
配置文件,并在 providers
数组中添加新项。
'Mitch\LaravelDoctrine\LaravelDoctrineServiceProvider'
之后,您需要添加外观。打开您的 app/config/app.php
配置文件,并在 aliases
数组中添加新项。
'EntityManager' => 'Mitch\LaravelDoctrine\EntityManagerFacade'
建议发布包配置。
php artisan config:publish mitchellvanw/laravel-doctrine --path=vendor/mitchellvanw/laravel-doctrine/config
2 分钟
此包使用 Laravel 数据库配置,因此它直接可用。使用 实体管理器 外观(或服务定位器)与存储库交互。您可能需要查看 Doctrine 2 文档 以了解其工作原理。下面的示例展示了如何以最简单的方式使用实体管理器。
<?php $user = new User; $user->setName('Mitchell'); EntityManager::persist($user); EntityManager::flush();
上面示例中使用的 User
类看起来如下。
<?php use Doctrine\ORM\Mapping AS ORM; /** * @ORM\Entity * @ORM\Table(name="users") */ class User { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string") */ private $name; public function getId() { return $this->id; } public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } }
如果您只使用 Eloquent 和其模型,这可能会看起来很庞大或令人恐惧,但实际上非常简单。让我分解一下这个类。
<?php use Doctrine\ORM\Mapping AS ORM; /** * @ORM\Entity * @ORM\Table(name="users") */ class User { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string") */ private $name; }
在 entity
中真正重要的是属性。这显示了 entity
包含哪些数据。
使用 Doctrine 2,您不能使用 User
实体与数据库交互。您必须使用 实体管理器 和 repositories
。这减少了开销,因为您的实体没有扩展整个 Eloquent model
类。如果您处理的是数千或数百万条记录,这可能会显著减慢您的应用程序。
许可证
本软件包遵循MIT许可协议。