이 라이브러리에는 Silex, Symlex(Symfony 기반의 민첩한 웹 개발을 위한 프레임워크 스택) 및 Symfony Console을 포함하여 거의 모든 PHP 애플리케이션을 부트스트래핑하기 위한 마이크로 커널이 포함되어 있습니다. 커널 자체는 여러 환경 매개변수를 설정하고 이를 사용하여 서비스 컨테이너 인스턴스를 생성하는 몇 줄에 불과합니다.
커널 인스턴스를 생성하고 run()
호출하는 것만으로도 애플리케이션을 시작할 수 있습니다.
#!/usr/bin/env php
<?php
// Composer
require_once ' vendor/autoload.php ' ;
$ app = new DIMicroKernel Kernel ( ' console ' );
// Run the 'app' service defined in config/console.yml
$ app -> run ();
config/
에 있는 YAML 파일은 애플리케이션과 모든 종속성을 서비스로 구성합니다. 파일 이름은 애플리케이션의 환경 이름(예: config/console.yml
)과 일치합니다. config/console.local.yml
과 같은 일치하는 구성 파일을 제공하여 로컬 또는 프로덕션과 같은 하위 환경에 대해 구성을 추가로 수정할 수 있습니다( app.sub_environment
매개변수 참조). 이 파일은 Symfony에서 알 수 있는 것과 동일한 잘 문서화된 형식으로 되어 있습니다.
parameters :
app.name : ' My App '
app.version : ' 1.0 '
services :
doctrine.migrations.migrate :
class : DoctrineDBALMigrationsToolsConsoleCommandMigrateCommand
app :
class : SymfonyComponentConsoleApplication
public : true
arguments : [%app.name%, %app.version%]
calls :
- [ add, [ "@doctrine.migrations.migrate" ] ]
이는 SilexApplication
, SymlexApplicationWeb
과 같은 웹 애플리케이션 또는 동일한 커널을 사용하는 SymfonyComponentConsoleApplication
과 같은 명령줄 애플리케이션을 부트스트래핑하기 위한 통일된 접근 방식을 제공합니다. 결과는 많은 프레임워크에서 알고 있는 일반적인 부트스트랩 및 미친 구성보다 훨씬 깔끔하고 간결합니다.
커널은 서비스 구성에 사용할 수 있는 여러 기본 매개변수를 설정합니다. 기본값은 커널의 setter 메소드를 통해 변경되거나 컨테이너 구성 파일 및 환경 변수(예 url: '%env(DATABASE_URL)%'
)로 덮어쓰거나 확장할 수 있습니다.
매개변수 | 게터 방식 | 세터 방식 | 기본값 |
---|---|---|---|
앱 이름 | getName() | 세트이름() | '핵심' |
앱.버전 | 버전 가져오기() | 세트버전() | '1.0' |
앱 환경 | get환경() | 세트환경() | '앱' |
app.sub_environment | getSub환경() | setSub환경() | '현지의' |
앱.디버그 | isDebug() | setDebug() | 거짓 |
app.charset | getCharset() | setCharset() | 'UTF-8' |
앱.경로 | getAppPath() | setAppPath() | './' |
app.config_path | getConfigPath() | setConfigPath() | './config' |
app.base_path | getBasePath() | setBasePath() | '../' |
app.storage_path | getStoragePath() | setStoragePath() | '../저장' |
app.log_path | getLogPath() | setLogPath() | '../저장소/로그' |
app.cache_path | getCachePath() | setCachePath() | '../저장소/캐시' |
app.src_path | getSrcPath() | setSrcPath() | '../src' |
커널 기본 클래스를 확장하여 장기 실행 콘솔 애플리케이션과 같은 특정 목적에 맞게 사용자 정의할 수 있습니다.
<?php
use DIMicroKernel Kernel ;
class ConsoleApp extends Kernel
{
public function __construct ( $ appPath , $ debug = false )
{
parent :: __construct ( ' console ' , $ appPath , $ debug );
}
public function setUp ()
{
set_time_limit ( 0 );
ini_set ( ' memory_limit ' , ' -1 ' );
}
}
디버그 모드가 꺼진 경우 서비스 컨테이너 구성은 캐시 경로로 설정된 디렉터리의 커널에 의해 캐시됩니다. 구성을 업데이트한 후에는 모든 캐시 파일을 삭제해야 합니다. 캐싱을 완전히 비활성화하려면 구성 매개변수에 container.cache: false
추가하세요.
parameters :
container.cache : false
프로젝트에서 이 라이브러리를 사용하려면, 간단하게 composer require symlex/di-microkernel
실행하거나 작곡가.json 파일에 "symlex/di-microkernel"을 추가하고 composer update
실행하세요:
{
"require" : {
"php" : " >=7.1 " ,
"symlex/di-microkernel" : " ^2.0 "
}
}
DIMicroKernel은 Michael Mayer가 관리합니다. 질문이 있거나, 상업적인 지원이 필요하거나, 간단히 인사하고 싶은 경우 [email protected]로 이메일을 보내 주시기 바랍니다. 우리는 어떤 종류의 기여도 환영합니다. 버그나 아이디어가 있는 경우 이슈를 열기 전에 가이드를 읽어보세요.