
MVPHP는 최소한의 실행 가능한 PHP 웹 응용 프로그램을 개발하기위한 간단하고 쉽게 해킹 가능한 프레임 워크입니다. 많은 PHP 프레임 워크에는 가파른 학습 곡선이 있으며 기능을 깊이 추상화했습니다. MVPHP는 물건을 단순하고 쉽고 순수한 PHP에 더 가깝게 유지하도록 설계되었습니다. 또한 간단하고 사용자 정의 가능한 부트 스트랩 구현을 제공하여 번거 로움없이 프론트 엔드를 만들기 시작합니다.
포함 된 사항 :
그렇지 않은 것 :
MVPHP는 Laravel, Symfony, Zend 등과 같은 강력하고 잘 테스트 된 PHP 프레임 워크가 아닙니다.이 프레임 워크는 최소한의 오버 헤드, 의견 및 많은 유연성을 가진 개념 증명 증명 PHP 웹 응용 프로그램을 빠르게 개발하기위한 것입니다. 자신의 위험에 따라 사용하십시오! 버그가 발생하거나 제안이 있으면 문제를 만드십시오.
composer install 실행하십시오.npm install -g gulp-cli 실행하십시오.npm install 실행하여 프론트 엔드 파일을 빌드하는 데 필요한 도구를 설치하십시오.gulp 실행하여 프론트 엔드 파일을 작성하십시오.public 디렉토리로 가리 킵니다.이 프레임 워크의 기본 아이디어는 모든 기본 기능을 처리하는 하나의 간단한 클래스로 시작하는 것입니다.
app.php 먼저 config.php 설정을로드 한 다음 $app 객체를 만들어 메인 클래스를 인스턴스화하는 부트 스트랩 파일입니다. 모든 인증 관련 기능에 대해 $auth 객체도 작성됩니다. 우리는 주 객체 ( $app->auth )의 속성을 지적하여 $ aug를 참조하고 $app 의 범위 내에서 액세스 할 수 있도록 $auth 참조합니다.
$ app = new MVPHP (); 우리가하는 거의 모든 것이이 $app 객체를 활용할 것입니다.
app.php 에는 루트 디렉토리의 routes.php 파일이 필요하며, 여기서 초기 경로를 정의합니다. 이 파일에는 몇 가지 작업 예제가 표시됩니다.
경로를 정의하는 몇 가지 방법과해야 할 일이 있습니다.
$ app -> route ( ' /example ' , function () use ( $ app ) {
// Do stuff here
}); 폐쇄는 요청 URI가 경로와 일치 할 때 실행되는 익명 기능입니다. 이 익명 함수 내부에서 메인 MVPHP 클래스의 메소드에 액세스 할 수 있도록하기 위해 use ($app) . 이렇게하면 $app 변수를 익명 함수의 변수 범위로 가져옵니다.
$ app -> route ( ' /example/{id} ' , function ( $ params ) use ( $ app ) {
echo $ params [ ' id ' ];
});브래킷이있는 URI에 가변 매개 변수를 표시 할 수 있습니다. 이들은 키가 경로에 정의 된 이름이고 요청 URI에 제공된 실제 값인 연관 배열로 식별됩니다.
$ app -> route ( ' /example/{id:int} ' , function ( $ params ) use ( $ app ) {
echo $ params [ ' id ' ];
});결장을 사용하여 제약 유형을 사용하여 URI 매개 변수 일치하는 제약 조건을 정의 할 수도 있습니다. 제약 조건 값을 남기면 "문자열"제약 조건으로 기본값이됩니다.
제약 옵션 :
정규 표현 예 :
PHP의 preg_match 함수와 함께 작동하는 모든 표현은 여기서 작동합니다. 이 도구는 표현식을 구현하기 전에 테스트하는 데 유용합니다.
// This example requires the ID value to be a 5 digit number
$ app -> route ( ' /example/{id:regex=^[0-9]{5}$} ' , function ( $ params ) use ( $ app ) {
echo $ params [ ' id ' ];
});
// This example requires the ID to be lower or uppercase letters between 1-10 characters long
$ app -> route ( ' /example/{id:regex=^[a-zA-Z]{1,10}$} ' , function ( $ params ) use ( $ app ) {
echo $ params [ ' id ' ];
}); $ app -> route ( ' /example ' ); 때로는 앱에 많은 경로가 있으며 routes.php 파일에있는 것보다 별도의 파일로 구성 할 수 있습니다.
이와 같은 경로를 등록하면 MVPHP는 controllers 디렉토리에서 동일한 이름의 상관 된 파일을 찾습니다. 위의 예에서 /example 에 등록 된 경로는 컨트롤러 디렉토리에서 example.php 파일을 찾아 필요합니다.
이제 example.php 파일에 /example 엔드 포인트와 관련된 더 많은 경로를 등록 할 수 있습니다. 예를 들어, controllers/example.php 파일은 다음과 같습니다.
// Reiterate this route and do something with it this time
$ app -> route ( ' /example ' , function () use ( $ app ) {
// Do stuff
});
// Register any other related route endpoints here
$ app -> route ( ' /example/stuff ' , function () use ( $ app ) {
// Do stuff
});이름이 다른 특정 파일을 사용하려면 두 번째 매개 변수로 간단히 지정하십시오.
$ app -> route ( ' /example ' , ' myfile ' ); controllers/myfile.php 가 필요합니다.
경로, 컨트롤러 및 모델의 개념은이 프레임 워크에서 매우 느슨하게 정의됩니다. 우리는 단순성을 위해 다양한 클래스를 사용하지 않습니다. 이 프레임 워크의 컨텍스트에서 컨트롤러는 단순히 모델을 정의한 요청과 기능 사이를 중재 할 곳이어야합니다.
예제는 controllers 디렉토리의 파일을보십시오.
action 방법을 사용하여 다른 요청 방법을 테스트 할 수 있습니다.
$ app -> route ( ' /example ' , function () use ( $ app ){
if ( $ app -> action ( ' post ' ) ) {
// Do stuff on POST
} elseif ( $ app -> action ( ' get ' ) ) {
// Do stuff on GET
}
}); 보기 템플릿은 views 디렉토리에 저장됩니다. 우리는 다음과 같은 뷰 (보통 컨트롤러에서)를 호출 할 수 있습니다.
$ app -> view ( ' my-template ' ); 이것은 단순히보기 폴더에서 my-template.php 찾아 파일이 필요합니다. 템플릿 파일에 변수가있는 경우 다음과 같은 뷰 메소드로 전달해야합니다.
$ my_var1 = ' Stuff I want to echo in the template. ' ;
$ app -> view ( ' my-template ' , [
' my_var1 ' => $ my_var1
]); 이제 $my_var1 보기 템플릿 파일 내부에서 액세스 할 수 있습니다.
우리는 템플릿 엔진을 귀찮게하지 않습니다 (PHP는 본질적으로 템플릿 언어 이기 때문에). 다음과 같이 HTML의 varialbes에 액세스하십시오.
< p > < ?=$my_var1;? > </ p >조건부 진술 :
< ?php if ( isset($my_var1) ):? >
< p > < ?=$my_var1;? > </ p >
< ?php endif;? >당신은 아이디어를 얻습니다. 순수하고 간단한 PHP 템플릿.
기본적으로 프론트 엔드는 부트 스트랩을 사용합니다. frontend 디렉토리에서 모든 소스 파일을 찾을 수 있습니다. frontend 폴더에서 소스 파일을 빌드하는 지침은 프로젝트 루트의 gulpfile.js 파일에 정의되어 있습니다.
프로젝트 루트에서 처음으로 gulp 실행하면 SCSS 및 JavaScript 파일이 결합, 조정되어 public 폴더에 복사되었습니다. 우리가 사용하는 공급 업체 JS 및 CSS 파일 (jQuery, Bootstrap 등)도 public 폴더에 복사됩니다.
frontend 디렉토리에서 SCSS 및 JavaScript 파일을 편집하기 전에 프로젝트 루트에서 gulp watch 실행할 수 있습니다. Gulp는 파일에 저장된 변경 사항을 감시하고 갈 때 저장합니다.
models/Documents.php 클래스는 HTML 소스에서 PDF 파일을 작성하는 하나의 방법을 제공합니다. 이 클래스는 wkhtmltopdf를 사용하며 작동하기 전에 이러한 종속성을 설치해야 할 수도 있습니다.
sudo apt-get install xfonts-base xfonts-75dpi urw-fonts
더 많은 PDF 및 기타 "문서"관련 기능이 향후 추가 될 것입니다.
메인 클래스가 포함 된 models/MVPHP.php 파일을 살펴보면 사용 가능한 다른 유틸리티 방법을 더 깊이 파고 들으십시오. 앞으로 더 많은 것이 추가 될 것입니다!