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
'programing' 카테고리의 다른 글
MariaDB 구문 오류 (0) | 2023.10.19 |
---|---|
다른 사용자가 소유한 데이터베이스 링크 생성을 위한 Oracle 구문 (0) | 2023.10.19 |
lsb_release: 최신 Ubuntu Docker 컨테이너에 명령을 찾을 수 없습니다. (0) | 2023.10.19 |
이미지를 자동으로 잘라내고 가운데로 맞추는 방법 (0) | 2023.10.19 |
UI 검색바 검색 텍스트 색상을 변경하려면 어떻게 해야 합니까? (0) | 2023.10.19 |