많은 WordPress 개발자는 강력한 플러그인을 구축하는 데 도움이 되는 Eloquent, Blade, Service Container 및 Service Provider와 같은 기능을 원합니다. Falcon은 게임의 판도를 바꾸고 이러한 기능을 여러분의 손끝에 제공하기 위해 왔습니다.
참고: 이 플러그인은 일련의 서비스를 제공하며 새 플러그인을 생성하기 위한 기반으로 사용되지 않습니다.
최소 PHP 버전: 8.2
디렉터리 생성: wp-content 폴더에 mu-plugins 폴더가 없으면 생성합니다. falcon-base-services 폴더를 그 안에 넣으세요.
로더 파일 생성: mu-plugins 폴더의 루트에 원하는 이름으로 PHP 파일을 생성하고 다음 코드를 추가합니다.
<?php
require ' falcon-base-services/falcon-base-services.php ' ; mu-plugins 폴더의 내용은 WordPress 관리자에서 활성화할 필요가 없으며 다른 모든 플러그인보다 먼저 실행됩니다. 또한 WordPress는 명시적으로 지시하지 않는 한 mu-plugins 내부의 폴더를 검사하지 않습니다.
종속성 설치: falcon-base-services 폴더에서 터미널을 열고 다음 명령을 실행합니다.
composer installComposer를 설치하지 않은 경우 이 링크에서 다운로드하여 설치할 수 있습니다.
이제 플러그인을 사용할 준비가 되었습니다. 그 기능과 사용법을 살펴보겠습니다.
사이트를 유지 관리 모드로 전환해야 하는 경우 storage 폴더에 있는 maintenance.example.php 파일의 이름을 maintenance.php 로 바꾸면 됩니다. 필요에 따라 파일 내용을 편집할 수도 있습니다.
.env.example 파일에 언급된 항목은 중요합니다. 파일 이름을 .env 로 바꿉니다.
.env 파일에서 변수를 설정하고 다음과 같이 코드의 어느 곳에서나 사용할 수 있습니다.
$ _ENV [ ' item ' ];
//or
env ( ' item ' )전역 $_ENV 변수에 항목을 설정하려면 다음을 사용할 수 있습니다.
setEnv ( $ key , $ value ); 배열을 반환하는 프로젝트의 구성 파일을 사용할 수도 있습니다. 구성 파일을 config 폴더에 배치하고 falconConfig($file, $key = null, $folder_path = null) 함수를 사용하여 원하는 값에 액세스합니다.
$file : 구성 파일의 이름입니다.
$key : 요청된 배열의 키입니다. null인 경우 전체 파일 내용이 반환됩니다.
$folder_path : 기본적으로 구성 파일의 경로는 config 폴더에 있습니다. 프로젝트에 새 구성을 적용하려는 경우 새 폴더의 경로를 지정할 수도 있습니다.
플러그인은 자동 배선 기능을 갖춘 강력한 서비스 컨테이너를 사용합니다.
싱글톤 서비스: 다음을 사용하여 싱글톤 서비스를 등록합니다.
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);비싱글톤 서비스: 다음을 사용하여 비싱글톤 서비스를 등록합니다.
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);클로저 사용: 클로저를 사용할 수도 있습니다:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; }); 서비스 사용: 서비스를 검색하려면 get 메소드를 사용하십시오.
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);메서드 해결: 다음을 사용하여 클래스에서 메서드를 해결합니다.
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );그러면 클래스와 메서드 모두에 필요한 모든 종속성이 자동으로 해결됩니다.
서비스 공급자를 생성하려면 app/providers 폴더에 클래스를 생성하고 ServiceProvider 클래스를 확장합니다. 필요에 따라 register 및 boot 방법을 사용하십시오. 그런 다음 bootstrap 폴더에 있는 providers.php 파일에 공급자의 주소를 추가합니다.
모든 기본 WordPress 테이블은 app/Model 폴더에서 모델로 사용할 수 있습니다. WooCommerce 테이블이 곧 추가될 예정입니다. 강력한 쿼리 빌더와 Eloquent를 모두 사용하여 이러한 테이블과 상호 작용할 수 있습니다.
( new FalconBaseServices Model Post ())-> published ()-> with ( ' author ' )-> get (); falconDB ():: table ( ' wp_posts ' )
-> where ( ' post_status ' , ' publish ' )
-> leftJoin ( ' wp_users ' , ' wp_posts.post_author ' , ' = ' , ' wp_users.ID ' )
-> select ( ' wp_posts.* ' , ' wp_users.user_nicename ' )
-> get (); 새 테이블을 모델로 사용하려면 FalconBaseServicesModelBaseModel 클래스를 확장하여 해당 클래스를 만듭니다. 테이블이 기본 접두사를 사용하지 않는 경우 $with_prefix false로 설정합니다.
protected $ with_prefix = false ;모델과 Query Builder/Eloquent의 규칙과 사용법은 Laravel 문서와 똑같습니다.
기본적으로 Blade가 템플릿 엔진으로 사용되는데, 이는 표준과 사용법이 약간 다릅니다. 다음 예에 주의하세요.
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render (); 나뭇가지를 사용할 수도 있습니다. app/Services/TemplateEngine/Template.php 인터페이스에서 파생된 클래스는 app/Services/TemplateEngine/Implements/Twig.php 경로에서 사용할 수 있습니다. Composer를 통해 플러그인에 Twig를 추가한 다음 app/Providers/TemplateServiceProvider.php 파일을 편집하기만 하면 됩니다. 사용법은 위의 예시와 비슷합니다.
로거를 사용하려면 falconLogger()를 사용하세요.
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]); ProcessIdProcessor , GitProcessor 및 MemoryUsageProcessor 로그에 포함하려면 .env 파일의 관련 항목을 true로 설정하세요.
이메일을 사용하려면 falconEmail()을 사용할 수 있습니다.
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null ); 이메일 사용 방법에 대한 자세한 내용은 app/Services/Sender/Implements/Email/PHPMailer.php 파일을 참조하세요.
즐거운 코딩하세요!