إطار PHP مكتوب بلغة C ومبني كملحق 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
، وبالتالي يمكن للمستخدم الوصول إلى المجلد العام فقط
يعد index.php
الموجود في الدليل العام هو الطريقة الوحيدة للدخول إلى التطبيق، ويجب عليك إعادة كتابة كافة الطلبات إليه (يمكنك استخدام .htaccess
في Apache+php mod)
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 محرك عرض بسيط يسمى "Yaf_View_Simple"، والذي يدعم قالب العرض المكتوب بلغة PHP.
Hello World
echo $ content ; ?>
http://www.example.com
يمكنك إنشاء المثال أعلاه باستخدام Yaf Code Generator: 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