미니 PHP 프레임 워크 - 표준 MVC 구조로 신속하게 응용 프로그램을 만듭니다.
Leia na versão em português (PT-BR) : 포르투갈 PT-BR
Codemini를 사용하는 이유는 무엇입니까?
어떤 이유로 인해 복잡한 구조를 사용하고 싶지 않고 묶고 싶지 않다면 Codemini가 옵션입니다.
Codemini .htaccess 사용하기가 매우 간단합니다. Laravel, Codeigniter 4와 같은 public 폴더에서 Projet을 실행하거나 공유 호스트를 사용하는 경우 Public Folder에서 Root Folder에서 index.php 만 복사하고 모든 것이 잘 작동합니다.
Packagist.org의 다른 패키지를 프로젝트로 쉽게 사용할 수 있습니다. composer require <vendor>/<package> Codemini는 설치 한 모든 패키지를 이해합니다.
WAMP 또는 XAMPP와 같은 타사 도구
위의 슬픈 것처럼 공유 호스트를 사용하거나 WAMP 또는 XAMPP와 같은 도구를 사용하는 경우 Public Folder의 Root 폴더에서 index.php 및 .htaccess 만 복사하면 모든 것이 잘 작동합니다.
예:
www 또는 htdocs 로 복사하십시오index.php 및 .htaccess public 폴더에서 루트 폴더로참고 : 원하는 경우 공개 폴더를 제거하십시오
왜 그렇게?
WAMP 또는 XAMPP와 같은 도구를 사용하는 경우 Apache의 문서 뿌리는 루트 폴더 www (WAMP) 또는 HTDOCS (XAMPP)를 가리키며 프레임 워크의 공개 폴더가 아닙니다.
이 규칙은 Codemini뿐만 아니라 Codeigniter 4, Laravel 등에 유효합니다. 프레임 워크가 작동하는 방식입니다.
1- 작곡가 프로젝트로 설치하려면 Run : composer create-project --prefer-dist codemini/framework name-folder-of-you-project
2- 오픈 터미널 및 실행 클리-툴 : php cli-tools serve
선택 사항 : PHP 내장 서버로 실행, public 폴더로 이동하여 실행 : php -S localhost:8080
참고 : 이 경우 Composer Create-Project가 이미 수행하기 때문에 작곡가 설치를 실행할 필요는 없습니다.
1- git 클론 으로 설치하려면 실행 : git clone https://github.com/fabriciopolito/Codemini.git 또는 다운로드 "zip 다운로드"및 파일 추출.
2- autoload 파일을 생성하기 위해 composer.json을 포함하는 루트 프로젝트 폴더에서 Composer (필수)를 실행하십시오.
composer installphp composer.phar install 가있는 경우 3- 오픈 터미널 및 실행 클리-툴 : php cli-tools serve
선택 사항 : PHP 내장 서버로 실행, public 폴더로 이동하여 실행 : php -S localhost:8080
Index.php는 다음과 같습니다.
<?php
$ dirname = strtolower ( basename ( __DIR__ ));
if ( $ dirname == ' public ' ) {
require_once ' ../app/Init.php ' ;
} else {
require_once ' app/Init.php ' ;
}
try {
$ myAPP = new Init ();
} catch ( Exception $ e ) {
$ e -> getMessage ();
} //end try...catch 참고 : Codemini에는 많은 구성이 없습니다.
표준 파일 수정 :
Config.php base_url, mysql, 환경, 시간대 등에 구성을 정의합니다.예:
$ config [ ' base_url ' ] = ' http://localhost:8080/ ' ;
$ config [ ' environment ' ] = ' development ' ;
$ config [ ' mysql ' ] = [
' host ' => ' localhost ' ,
' dbname ' => ' codemini_tests ' ,
' username ' => ' root ' ,
' password ' => '' ,
' charset ' => ' utf8 ' ,
' display_error ' => ( $ config [ ' environment ' ] == ' development ' ) ? true : false
];
$ config [ ' session_name ' ] = ' MY_Session_name_ ' ;
$ config [ ' timezone ' ] = ' America/Sao_Paulo ' ;
$ config [ ' page_not_found ' ] = ' PageNotFound@index ' ;
$ config [ ' view_extension ' ] = ' .phtml ' ;참고 : 파일 앱/config.php에는 각 옵션 전체가 있습니다
Constants.php 프로젝트 이름과 파일 위치 정의... 컨트롤러, 뷰 및 모델을 만듭니다!
컨트롤러 / Home.php
php cli-tools create-controller Home출력 : ./app/controllers/home.php
<?php
namespace App Controllers ;
use Codemini Core Controller ;
use Codemini Core Request ;
class Home extends Controller{
public function __construct (){
parent :: __construct ();
}
public function index ( $ args = "" ){
//Data to view
//Example: $this->view->data = ['php', 'js', 'nodejs', 'mongodb', 'css'];
//Load view
//$this->view('template_name');
echo " Controller name: " . Request:: getController () . " <br> " ;
echo " Method name: " . Request:: getMethod () . " <br> " ;
}
} 보기 / Template/index.phtml
<!doctype html >
< html lang =" en " >
< head >
<!-- Required meta tags -->
< meta charset =" utf-8 " >
< meta name =" viewport " content =" width=device-width, initial-scale=1, shrink-to-fit=no " >
< base href =" <?php echo $config['base_url'] ?> " >
<!-- Bootstrap CSS -->
< link rel =" stylesheet " href =" https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css " integrity =" sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh " crossorigin =" anonymous " >
< title > Application name </ title >
</ head >
< body >
< ?php
print ' < pre > ';
print_r($this- > view- > data);
print ' </ pre > ';
? >
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
< script src =" https://code.jquery.com/jquery-3.4.1.slim.min.js " integrity =" sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n " crossorigin =" anonymous " > </ script >
< script src =" https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js " integrity =" sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo " crossorigin =" anonymous " > </ script >
< script src =" https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js " integrity =" sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6 " crossorigin =" anonymous " > </ script >
</ body >
</ html > 모델 / Products.php
php cli-tools create-model Products출력 : ./app/models/products.php
<?php
namespace App Models ;
use Codemini Core Model ;
class Products extends Model{
protected $ table = ' table_name ' ;
/**
* Construct the parent model class for get instance '$this->db' PDO and the
* SIMPLE QUERY BUILDER functions
*/
public function __construct ()
{
parent :: __construct ();
}
/**
* Example 1 with VERY SIMPLE query builder
*/
public function allProducts ( $ orderBy = " ORDER BY `name` ASC " ){
$ sql = " SELECT * FROM ` { $ this -> table } ` { $ orderBy }" ;
$ this -> query ( $ sql );
$ this -> execute ();
return $ this -> fetchAll ();
}
/**
* Example 2 with VERY SIMPLE query builder
*/
public function productById ( $ val )
{
$ sql = " SELECT * FROM ` { $ this -> table } ` WHERE `id` = :id " ;
$ this -> query ( $ sql );
$ this -> bind ( " :id " , $ val );
$ this -> execute ();
return $ this -> fetch ();
}
/**
* Example 3 with VERY SIMPLE query builder
*/
public function productsByPrice ( $ val )
{
$ sql = " SELECT * FROM ` { $ this -> table } ` WHERE `price` = :price " ;
$ this -> query ( $ sql );
$ this -> execute ([ " :price " => $ val ]);
return $ this -> fetchAll ();
}
/**
* Example 4 with MANUALLY statement $db
*/
public function productsByName ( $ val )
{
$ sql = " SELECT * FROM ` { $ this -> table } ` WHERE `name` = :name " ;
$ stmt = $ this -> db -> prepare ( $ sql );
$ stmt -> bindParam ( " :name " , $ val , PDO :: PARAM_STR );
$ stmt -> execute ();
return $ stmt -> fetch ();
}
} configItem('key') 지정된 이름을 반환합니다. 예 : <?php echo configItem('base_url') ?>
&getInstance() 반환 컨트롤러 개체 인스턴스
컨트롤러에서 Librarie를 사용하는 방법은 무엇입니까?
매우 간단합니다! use 명령어로로드하면 라이브러리를 사용할 수 있습니다.
예:
<?php
namespace App Controllers ;
//IMPORTANT
// Don't forget to load with 'use' instruction
use Codemini Core Controller ;
use Codemini Libraries Input ;
class Teste extends Controller{
public function __construct (){
parent :: __construct ();
}
public function index ( $ args ){
//$_POST
$ email = Input:: post ( ' email ' );
$ password = Input:: post ( ' password ' );
//$_GET
$ email = Input:: get ( ' email ' );
$ password = Input:: get ( ' password ' );
//FILE
$ userfile = Input:: file ( ' userfile ' );
//ALL REQUEST
print_r ( $ allRequest = Input:: all ());
}
}Codemini의 기본 라이브러리
Input - Get, Post, File을 조작하도록 도와줍니다echo Input::get('email')echo Input::post('email')echo Input::file('userfile')echo Input::all()Redirect - 사용자를 다른 위치로 리디렉션합니다echo Redirect::to(configItem('base_url') . 'login/index')Session - 세션 데이터를 조작하는 데 도움이됩니다Session::start()Session::set('logged_in', true)Session::set(array('user_id' => 1, 'logged_in' => true))Session::get('user_id')Session::has('logged_in')Session::all()Session::id()Session::regenerateId()Session::remove('user_id')Session::destroy()Validator - 데이터를 검증하는 데 도움이됩니다Validator::getErrors()Validator::getMsg()Validator::setOpenTag('<p>')Validator::setCloseTag('</p>')Validator::required($val)Validator::isEmail($val)Validator::isUrl($val)Validator::isFloat($val)Validator::isInt($val)Validator::isBool($val)Validator::isIp($val)Validator::regex($val, '/[az]/i')참고 : 라이브러리에는 각 옵션에 전체 문서가 있습니다.
당신은 무료입니다! 따라서 예를 들어 ./app/ 에서 폴더 Helpers 와 파일 Upload.php 작성하면 자동로드를 위해 올바르게 네임 스페이스를 설정하는 것입니다.
예 ./app/Helpers/Upload.php :
<?php
namespace App Helpers ;
class Upload
{
public static function setUpload ( $ file )
{
//The logic code here...
}
}그런 다음이 방법으로 모든 컨트롤러로 사용하십시오.
예 ./app/Controllers/Home.php
<?php
namespace App Controllers ;
use Codemini Core Controller ;
// IMPORTANT:
// Don't forget load the helper librarie you have created
use App Helpers Upload ;
class Home extends Controller{
public function __construct (){
parent :: __construct ();
}
public function index ( $ args = "" ){
// call methods
Upload:: setUpload ( $ _FILE [ ' userfile ' ]);
}
}매우 간단합니다! 작곡가를 실행하기 만하면 명령이 필요하고 위와 같은 방식으로로드하십시오.
예 1 : composer require plasticbrain/php-flash-messages
예 2 : composer require monolog/monolog
Fabricio Pólito [email protected] https://github.com/fabriciopolito
감사합니다?
Codemini는 MIT 라이센스에 따라 라이센스가 부여됩니다