programing

Laravel의 데이터베이스 계층을 독립적으로 사용할 수 있습니까?

starjava 2023. 10. 19. 21:48
반응형

Laravel의 데이터베이스 계층을 독립적으로 사용할 수 있습니까?

한동안 나는 내 작업을 위해 php 프레임워크를 사용하는 것을 기대해 왔습니다.저는 최근까지 절차적인 스타일을 써왔고 아직도 웁 월드/스타일에서 제 길을 찾으려 노력하고 있습니다.저는 php 프레임워크가 더 나은 코드를 작성하는 데 도움이 될 것이라고 생각했고 가까운 미래에 라라벨 프로젝트에 기대게 될 것이라고 확신합니다.

지금은 기존 코드에서 사용할 수 있는 데이터베이스 계층이 필요합니다.구현이 쉬웠기 때문에(이전에는 MySQL을 사용) 지금은 준비된 문장과 함께 mysqli를 사용합니다.

저는 pdo wrapper/class를 사용하는 "쉬운" 방법으로 http://medoo.in 을 살펴보았지만, 지원 페이지에서 활동이 부족하고, 앞으로 Laravel을 사용하기 위해 노력하고 있다는 사실이 저의 기존 코드에 Laravel database layer를 지금 사용할 수 있는지 궁금하게 만들었습니다.

이것이 가능하고 말이 될까요? 아니면 제가 코드 스타일링의 개념을 잘못 이해하고 섞고 있는 건가요?

IMO 단계적으로 OOP 방식으로 전환하는 것이 절대적으로 유효합니다.

질문 내용:

네, 웅변 단독으로 사용할 수 있습니다.

포장마차 사이트 https://packagist.org/packages/illuminate/database 추가"illuminate/database": "5.0.*@dev"당신에게composer.json그리고 달리다composer update. 이제 너는 언플러그먼트를 부츠끈으로 묶어야 할 것입니다.(https://github.com/illuminate/database)

다음은 repo의 read me에서 복사한 것입니다.

사용설명서

먼저 새 "Capsule" Manager 인스턴스를 만듭니다.캡슐은 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();

캡슐 인스턴스(instance)가 등록되면,다음과 같이 사용할 수 있습니다.

쿼리 작성기 사용

$users = Capsule::table('users')->where('votes', '>', 100)->get();

다른 핵심 방법은 DB 파사드와 동일한 방식으로 캡슐에서 직접 액세스할 수 있습니다.

$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();
});

웅변 ORM 사용하기

class User extends Illuminate\Database\Eloquent\Model {}

$users = User::where('votes', '>', 1)->get();

이 라이브러리에서 제공하는 다양한 데이터베이스 기능 사용에 대한 자세한 문서는 Laravel 프레임워크 문서를 참조하십시오.

바스티안의 대답은 꽤 좋습니다.하지만 한가지 더 있습니다.이벤트 립 없이는 작동할 수 없습니다.설치하는 방법;

composer require illuminate/events

당신은 가도 좋습니다.

언급URL : https://stackoverflow.com/questions/26083175/can-i-use-laravels-database-layer-standalone

반응형