一段时间以来,我一直在寻找使用php框架来完成我的工作。直到最近我一直在编写程序风格,并且仍然试图找到我的方式围绕oop世界/风格。 我认为一个php框架可以帮助我编写更好的代码,而且我很确定我会在不久的将来倾向于Laravel项目。
现在我需要一个可以在现有代码中使用的数据库层。我现在使用mysqli和预处理语句,因为我很容易实现(之前使用MySQL)。
我一直在关注http://medoo.in作为"轻松"使用pdo包装器/类的方法,但支持页面上缺少活动,以及我将来使用Laravel的事实让我想知道我现在是否可以使用Laravel数据库层来存在码。
这可以做到并且它有意义还是我误解和混合代码样式的概念?
答案 0 :(得分:43)
IMO一步一步过渡到OOP方法绝对有效。
问题:
是的,您可以使用Eloquent standalone。
以下是包装网站:https://packagist.org/packages/illuminate/database
将"illuminate/database": "5.0.*@dev"
添加到composer.json
并运行composer update
。
现在你需要引导Eloquent。 (https://github.com/illuminate/database)
以下内容是从repo的自述文件中复制的:
使用说明
首先,创建一个新的“Capsule”管理器实例。 Capsule旨在尽可能简化在Laravel框架之外配置库的使用。
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
// Set the event dispatcher used by Eloquent models... (optional)
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$capsule->setEventDispatcher(new Dispatcher(new Container));
// Set the cache manager instance used by connections... (optional)
$capsule->setCacheManager(...);
// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();
一旦注册了Capsule实例。您可以像这样使用它:
使用查询生成器
$users = Capsule::table('users')->where('votes', '>', 100)->get();
其他核心方法可以直接从Capsule访问,方式与数据库外观相同:
$results = Capsule::select('select * from users where id = ?', array(1));
使用架构生成器
Capsule::schema()->create('users', function($table)
{
$table->increments('id');
$table->string('email')->unique();
$table->timestamps();
});
使用Eloquent ORM
class User extends Illuminate\Database\Eloquent\Model {}
$users = User::where('votes', '>', 1)->get();
有关使用此库提供的各种数据库工具的更多文档,请参阅Laravel框架文档。
答案 1 :(得分:0)
巴斯蒂安的答案很好。但是还有一件事。没有事件库就无法工作。要安装它;
composer require illuminate/events
你很好走