In C geschriebenes und als PHP-Erweiterung erstelltes PHP-Framework.
Yaf ist eine PECL-Erweiterung, Sie können sie also einfach installieren, indem Sie:
$pecl install yaf
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config
$make && make install
Das Yaf-Handbuch finden Sie unter: http://www.php.net/manual/en/book.yaf.php
efnet.org #php.yaf
Ein dokumentiertes Prototyp-Skript finden Sie hier: https://github.com/elad-yosifon/php-yaf-doc
Ein klassisches Anwendungsverzeichnis-Layout:
- .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
Sie sollten DocumentRoot
auf application/public
setzen, damit der Benutzer nur auf den öffentlichen Ordner zugreifen kann
index.php
im öffentlichen Verzeichnis ist der einzige Zugang zur Anwendung. Sie sollten alle Anfragen dorthin umschreiben (Sie können .htaccess
im Apache+php-Mod verwenden).
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
ist die Anwendungskonfigurationsdatei
[product]
; CONSTANTS is supported
application.directory = APPLICATION_PATH " /application/ "
Alternativ können Sie stattdessen ein PHP-Array verwenden:
$ config = array (
" application " => array (
" directory " => application_path . " /application/ " ,
),
);
$ app = new yaf_application ( $ config );
. . . .
In Yaf heißt der Standardcontroller IndexController
:
class IndexController extends Yaf_Controller_Abstract {
// default action name
public function indexAction () {
$ this -> getView ()-> content = " Hello World " ;
}
}
?>
Das Ansichtsskript für den Standardcontroller und die Standardaktion befindet sich in application/views/index/index.phtml. Yaf stellt eine einfache Ansichts-Engine namens „Yaf_View_Simple“ bereit, die die in PHP geschriebene Ansichtsvorlage unterstützt.
Hello World
echo $ content ; ?>
http://www.example.com
Sie können das obige Beispiel mit dem Yaf Code Generator generieren: https://github.com/laruence/php-yaf/tree/master/tools/cg
./yaf_cg -d output_directory [-a application_name] [--namespace]
Weitere Informationen finden Sie im Yaf-Handbuch: http://www.php.net/manual/en/book.yaf.php