Yaf教程2:入门使用
接下来我们通过最简单的“helloyaf”例子说明Yaf的用法,然后一步步走向更加复杂的用法。Yaf的PHP官方手册位置是:http://php.net/manual/zh/book.yaf.php,这比鸟哥(Yaf作者)自己博客http://www.laruence.com/manual/的文档要新,所以如果要参考手册,建议看PHP官方手册为佳。
本教程在PHP手册的基础上,注重具体的实践,每一步都亲自验证,所以更适合作为入门和深入教程。
1目录部署
作为简单的例子,我们需要部署的目录和文件并不多,如下。
-index.php +conf |-application.ini -application/ -Bootstrap.php +controllers -Index.php +views |+index -index.phtml
总共5个文件和5个目录(包括子目录)。
2文件内容
2.1index.php
首先整站唯一的入口文件,内容:
<?php define("APP_PATH",dirname(__FILE__)); $app=newYaf_Application(APP_PATH."/conf/application.ini"); $app->bootstrap()->run();
第一个代码行定义应用的ROOT目录;
第二代码行实例化Yaf_Application,并传入配置文件;
第三代码行首先执行bootstrap()方法初始化,使用该方法有个要求:必须在Bootstrap.php文件中创建Bootstrap类,且该类继承自Yaf_Bootstrap_Abstract。然后run()方法运行。
2.2application.ini
这是系统的配置文件,在系统运行之前会读取其中的配置,可以是用ini文件,或者用php文件的数组方式。ini文件内容:
[product] ;支持直接写PHP中的已定义常量 application.directory=APP_PATH"/application/"
其中,
APP_PATH取自入口文件的常量;
application.directory 定义应用的目录,这个目录下面有controllers、views等MVC目录;
2.3Bootstrap.php
这是启动是要执行的脚本,因为现在并不需要做任何初始化,所以直接写一个类就可以。
<?php classBootstrapextendsYaf_Bootstrap_Abstract { }
其中,Yaf_Bootstrap_Abstract是Yaf中的类。
2.4Index.php
控制器名字必须以Controller关键字结尾,并继承Yaf_Controller_Abstract(不然要Yaf干嘛),默认是Index控制器。
而动作方法则必须以Action关键字结尾,默认是index动作。
<?php classIndexControllerextendsYaf_Controller_Abstract { publicfunctionindexAction() { $this->_view->word="helloyaf"; } }
控制器中的index动作就是将$this->_view->word输出到视图中。
2.5Index.phtml
默认的视图文件内容如下。
<!DOCTYPEhtml> <html> <head> <title><?phpecho$word;?></title> </head> <body> <div><?phpecho$word;?></div> </body> </html>
3效果
这样,访问你的服务器地址,就可以看到页面打印“helloyaf”输出了。