PHP code example of bojaghi / continy
1. Go to this page and download the library: Download bojaghi/continy library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bojaghi / continy example snippets
/**
* Plugin Name: My plugin
* Description: ...
* ...
*/
f ( !function_exists( 'myPlugin' ) ) {
/**
* Wrapper function
*
* @return \Bojaghi\Continy\Continy
* @throws \Bojaghi\Continy\ContinyException
* @throws \Bojaghi\Continy\ContinyNotFoundException
*/
function myPlugin(): Bojaghi\Continy\Continy {
static $continy = null;
if (is_null($continy)) {
$continy = Bojaghi\Continy\ContinyFactory::create(__DIR__ . '/conf/setup.php');
}
return $continy;
}
}
if (!function_exists('myPluginGet')) {
/**
* @template T
* @param class-string<T> $id
*
* @return T|object|null
*/
function myPluginGet(string $id)
{
try {
$instance = myPlugin()->get($id);
} catch (\Bojaghi\Continy\ContinyException|\Bojaghi\Continy\ContinyNotFoundException $e) {
$instance = null;
}
return $instance;
}
}
// 플러그인 시동하기
myPlugin();
// create() 부분만 예시로 듭니다.
// 옵션 #1: 설정 파일이 있는 경로 지정하기
$continy = Bojaghi\Continy\ContinyFactory::create(__DIR__ . '/conf/setup.php');
// 옵션 #2: 직접 설정을 배열로 넣기
$continy = Bojaghi\Continy\ContinyFactory::create(
[
'main_file' => __FILE__,
'version' => '1.0.0',
// ...
],
);
/**
* 설정 파일의 예시
*/
if (!defined('ABSPATH')) {
exit;
}
return [
'main_file' => dirname(__DIR__) . '/index.php', // 플러그인 메인 파일
'version' => '1.0.0', // 플러그인의 버전
/**
* 훅 선언
*
* 키: 훅 이름
* 값: 콜백 함수에서 허용하는 인자 수, 0 이상의 정수
*/
'hooks' => [
'admin_init' => 0,
'init' => 0,
],
/**
* 바인딩 선언
*
* 키: 별명 (alias)
* 값: 실제 클래스 (FQCN)
*/
'bindings' => [
'myModule' => MyModule::class,
'foo' => Foo::class,
IBar::class => BarImpl::class,
],
/**
* 클래스 의존성 주입 선언
*
* 키: 별명, 또는 FQCN
* 값: 배열, 또는 함수 - 함수는 배열을 리턴해야 함
*/
'arguments' => [
'myModule' => ['p1' => 'X', 'p2' => 'Y'],
'foo' => function (Continy $continy) { return ['p1' => 'X', 'p2' => 'Y']; },
],
/**
* 모듈 선언
*/
'modules' => [
// 1.0.2 부터 지원하는 언더스코어 모듈: Continy 가 인스턴스화 될 때 바로 실행되는 모듈.
// 우선순위 키는 사용하지 않습니다.
'_' => [
IBar::class,
],
// 훅 이름
'init' => [
// 모듈 우선순위
Continy::PR_DEFAULT => [
// 모듈 목록
'myModule',
'foo',
],
],
// 혹 이름, 모듈 우선순위, 모듈의 목록 ...
],
];