c로 작성되고 PHP 확장으로 구축된 PHP 프레임워크입니다.
Yaf는 PECL 확장이므로 다음 방법으로 간단히 설치할 수 있습니다.
$pecl install yaf
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config
$make && make install
Yaf 매뉴얼은 http://www.php.net/manual/en/book.yaf.php에서 찾을 수 있습니다.
efnet.org #php.yaf
여기에서 문서화된 프로토타입 스크립트를 찾을 수 있습니다: https://github.com/elad-yosifon/php-yaf-doc
클래식 애플리케이션 디렉토리 레이아웃:
- .htaccess // Rewrite rules
+ public
| - index.php // Application entry
| + css
| + js
| + img
+ conf
| - application.ini // Configure
- application/
- Bootstrap.php // Bootstrap
+ controllers
- Index.php // Default controller
+ views
|+ index
- index.phtml // View template for default controller
+ library // libraries
+ models // Models
+ plugins // Plugins
DocumentRoot
application/public
으로 설정해야 합니다. 그러면 사용자는 public 폴더에만 액세스할 수 있습니다.
공용 디렉토리에 있는 index.php
애플리케이션에 들어가는 유일한 방법입니다. 모든 요청을 여기에 다시 작성해야 합니다(Apache+php 모드에서 .htaccess
사용할 수 있습니다).
define ( " APPLICATION_PATH " , dirname ( dirname ( __FILE__ )));
$ app = new Yaf_Application ( APPLICATION_PATH . " /conf/application.ini " );
$ app -> bootstrap () //call bootstrap methods defined in Bootstrap.php
-> run ();
#.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
server {
listen ****;
server_name domain.com;
root document_root;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^/(.*) /index.php/$1 last;
}
}
$HTTP["host"] =~ "(www.)?domain.com$" {
url.rewrite = (
"^/(.+)/?$" => "/index.php/$1",
)
}
application.ini
애플리케이션 구성 파일입니다.
[product]
; CONSTANTS is supported
application.directory = APPLICATION_PATH " /application/ "
또는 대신 PHP 배열을 사용할 수 있습니다.
$ config = array (
" application " => array (
" directory " => application_path . " /application/ " ,
),
);
$ app = new yaf_application ( $ config );
. . . .
Yaf에서 기본 컨트롤러의 이름은 IndexController
입니다.
class IndexController extends Yaf_Controller_Abstract {
// default action name
public function indexAction () {
$ this -> getView ()-> content = " Hello World " ;
}
}
?>
기본 컨트롤러 및 기본 작업에 대한 보기 스크립트는 application/views/index/index.phtml에 있습니다. Yaf는 PHP로 작성된 보기 템플릿을 지원하는 "Yaf_View_Simple"이라는 간단한 보기 엔진을 제공합니다.
Hello World
echo $ content ; ?>
http://www.example.com
Yaf 코드 생성기를 사용하여 위의 예제를 생성할 수 있습니다: https://github.com/laruence/php-yaf/tree/master/tools/cg
./yaf_cg -d output_directory [-a application_name] [--namespace]
더 많은 정보는 Yaf 매뉴얼에서 찾을 수 있습니다: http://www.php.net/manual/en/book.yaf.php