php使用fleaphp框架做開發。
fleaphp是國人開發的一套輕量級的框架。 在freebsd協議下發布。可以到www.fleaphp.org去下載。我就使用了一下,下面是把我的用法寫下來。我使用的是1.0.70的版本。
在你的工作目錄建立下面幾個目錄:
Controller
Model
View
Config
Cache
並且把fleaphp框架下的FLEA目錄複製到你的工作錄目下,然後在工作目錄下創建index.php文件。首先我門來研究編寫index.php文件。
define("APP_DIR",dirname(__FILE__));
$configpath=APP_DIR;
上面的就不解釋了。
require("FLEA/FLEA.php"); //這是必須的。因爲在fleaphp中使用了FLEA字名空間。
FLEA::import(APP_DIR); //import函數是用來告訴FLEA到那去找Controller Mode View Config等目錄和這些目錄中的文件
FLEA::loadAppInf($configpath."/Config/config.php"); // loadAppInf是用來導入fleaphp所需要的config文件。
FLEA::runMVC(); //OK,在這你的程序開始跑起來了。
在Controller目錄下的文件和文件中的類命名方式是如下:如果文件名爲TTT.php,那麼這個文件中的類名就是Controller_TTT. 因此我在Controller下的文件是Book.php,Book.php文件中的類名就是Controller_Book。
類的函數命名方式是actionXxx,Xxx是你要做的操作,.操作名第一個字母要大寫。
class Controller_Book extends FLEA_Controller_Action
{
var $_modemydb;
function Controller_Book()
{
$this->_modemydb=&FLEA::getSingleton('Model_mydb'); //getSingleton(classname),是根據classname創建一個唯一的類對象。 在我們這段代碼中Model_mydb是在View目錄mydb.php文件中定義的。
}
function actionIndex()
{
$posts=$this->_modemydb->findAll();//這個操作相當於執行了select * from table;
include("View/user.php"); r/然後調用View/user.php將數據顯示出來。
}
function actionSay()
{
print "heng,heng";
}
}
在來看看Model目錄下的mydb.php
FLEA::loadClass('FLEA_Db_TableDataGateway'); //loadClass(classname)是導入我們需要類。在Model目錄下的類的命名方式是Model_XXX,XXX是你定義的類名,要和文件名一樣。如果你不加Model就會在使用上面說的getSingleton函數的時候出現異常。
class Model_mydb extends FLEA_Db_TableDataGateway
{
var $tableName="user"; //表名
var $primaryKey="id"; //主鍵名
}
最後來看看Config目錄下的config.php文件。
return array(
'defaultController' => 'Book', //在這定義默認的Controller,我使用的是前面定義的Controller_Book類。如果不使用這句就要自己在Controller目錄中定義一個Controller_Default類。
'internalCacheDir' => dirname(dirname(__FILE__)) . DS . 'Cache', //這句我還沒有明白:(誰能告訴我呢.
//下面的是dbDSN,這個就不需要我說了把。
'dbDSN' => array(
'driver' => 'mysql',
'host' => 'localhost',
'login' => 'root',
'password' => '123456789',
'database' => 'fleaphp'
)
);
最好看View/user.php中的內容。如下
<html>
<head>
<title>用戶信息</title>
</head>
<body>
<? foreach ($posts as $post):?>
用戶ID:<?echo h($post["id"])?> 用戶名: <?echo h($post["name"])?><br>
<?endforeach;?>
</body>
</html>
好了就說的這了。88. erverbody
在你的工作目錄建立下面幾個目錄:
Controller
Model
View
Config
Cache
並且把fleaphp框架下的FLEA目錄複製到你的工作錄目下,然後在工作目錄下創建index.php文件。首先我門來研究編寫index.php文件。
define("APP_DIR",dirname(__FILE__));
$configpath=APP_DIR;
上面的就不解釋了。
require("FLEA/FLEA.php"); //這是必須的。因爲在fleaphp中使用了FLEA字名空間。
FLEA::import(APP_DIR); //import函數是用來告訴FLEA到那去找Controller Mode View Config等目錄和這些目錄中的文件
FLEA::loadAppInf($configpath."/Config/config.php"); // loadAppInf是用來導入fleaphp所需要的config文件。
FLEA::runMVC(); //OK,在這你的程序開始跑起來了。
在Controller目錄下的文件和文件中的類命名方式是如下:如果文件名爲TTT.php,那麼這個文件中的類名就是Controller_TTT. 因此我在Controller下的文件是Book.php,Book.php文件中的類名就是Controller_Book。
類的函數命名方式是actionXxx,Xxx是你要做的操作,.操作名第一個字母要大寫。
class Controller_Book extends FLEA_Controller_Action
{
var $_modemydb;
function Controller_Book()
{
$this->_modemydb=&FLEA::getSingleton('Model_mydb'); //getSingleton(classname),是根據classname創建一個唯一的類對象。 在我們這段代碼中Model_mydb是在View目錄mydb.php文件中定義的。
}
function actionIndex()
{
$posts=$this->_modemydb->findAll();//這個操作相當於執行了select * from table;
include("View/user.php"); r/然後調用View/user.php將數據顯示出來。
}
function actionSay()
{
print "heng,heng";
}
}
在來看看Model目錄下的mydb.php
FLEA::loadClass('FLEA_Db_TableDataGateway'); //loadClass(classname)是導入我們需要類。在Model目錄下的類的命名方式是Model_XXX,XXX是你定義的類名,要和文件名一樣。如果你不加Model就會在使用上面說的getSingleton函數的時候出現異常。
class Model_mydb extends FLEA_Db_TableDataGateway
{
var $tableName="user"; //表名
var $primaryKey="id"; //主鍵名
}
最後來看看Config目錄下的config.php文件。
return array(
'defaultController' => 'Book', //在這定義默認的Controller,我使用的是前面定義的Controller_Book類。如果不使用這句就要自己在Controller目錄中定義一個Controller_Default類。
'internalCacheDir' => dirname(dirname(__FILE__)) . DS . 'Cache', //這句我還沒有明白:(誰能告訴我呢.
//下面的是dbDSN,這個就不需要我說了把。
'dbDSN' => array(
'driver' => 'mysql',
'host' => 'localhost',
'login' => 'root',
'password' => '123456789',
'database' => 'fleaphp'
)
);
最好看View/user.php中的內容。如下
<html>
<head>
<title>用戶信息</title>
</head>
<body>
<? foreach ($posts as $post):?>
用戶ID:<?echo h($post["id"])?> 用戶名: <?echo h($post["name"])?><br>
<?endforeach;?>
</body>
</html>
好了就說的這了。88. erverbody
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.