看到你前面幾段寫的就知道你是玩Java的。Java主要用Spring來實現(xiàn)主要的解耦功能。
創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、舞鋼網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、商城開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為舞鋼等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
PHP這里的框架很少,而且PHP也沒有那么靈活的反射機制等吧。所以如果要用PHP來實現(xiàn)高內(nèi)聚低耦合,有點難度,除非你自己搞框架。
我看discuz論壇都沒有用那么復(fù)雜的技術(shù),而且我個人覺得PHP用MVC來分,分個controller,實在沒有必要。
如果樓主用了很復(fù)雜的業(yè)務(wù)邏輯,為何不用Java來做業(yè)務(wù)中心,PHP做前端,使用Java的WebService來暴露數(shù)據(jù)呢?
個人拙見,一起探討。
一、php配置MySQL
1、將php安裝目錄下的php_mysql.dll和MySQL安裝目錄下的libmysql.dll文件拷貝至c:/windows/system32中;
2、配置php.ini
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
把上面四個。dll的最前面的;去掉
二、php表單提交至數(shù)據(jù)庫的實現(xiàn)過程
1、login.php頁面
SPAN style="FONT-SIZE: 14px"html
FORM method=post action=add.php
Name: INPUT name=usernameBR
Email: INPUT name=emailBR
INPUT value=提交 type=submit name=submit
/FORM
/SPAN
2、add.php頁面
SPAN style="FONT-SIZE: 14px"?php
include("conn.php");
?
?php
if(isset($_POST["submit"]))
{
$sql = "insert into users(username, email) values('$_POST[username]', '$_POST[email]')";
mysqli_query($conn, $sql);
echo "添加成功";
}
?/SPAN
3、conn.php頁面
SPAN style="FONT-SIZE: 14px"?php
$conn = new mysqli("localhost", "root", "159357");
$conn-select_db("db_test");
//mysql_query("set name 'gb2312'");
$conn-set_charset("utf8");
?/SPAN
MVC三個字母的含義:
M:Model 模型,負責數(shù)據(jù)庫操作。
V:View 視圖,負責調(diào)用Model調(diào)取數(shù)據(jù),再調(diào)用模板,展示出最終效果。
C:Controller 控制器,程序的入口,決定改調(diào)用哪個View,并告訴View該做什么。
下面是一個超級簡單的MVC結(jié)構(gòu)實現(xiàn):
Controller.php
include?'Model.php';
include?'View.php';
class?Controller?{
private?$model?????=?'';
private?$view?????=?'';
public?function?Controller(){
$this-model????=????new?Model();
$this-view????????=????new?View();
}
public?function?doAction(?$method?=?'defaultMethod',?$params?=?array()?){
if(?empty($method)?){
$this-defaultMethod();
}else?if(?method_exists($this,?$method)?){
call_user_func(array($this,?$method),?$params);
}else{
$this-nonexisting_method();
}
}
public?function?link_page($name?=?''){
$links?=?$this-model-getLinks();
$this-view-display($links);
$result?=?$this-model-getResult($name);
$this-view-display($result);
}
public?function?defaultMethod(){
$this-br();
echo?"This?is?the?default?method.?";
}
public?function?nonexisting_method(){
$this-br();
echo?"This?is?the?noexisting?method.?";
}
public?function?br(){
echo?"br?/";
}
}
$controller?=?new?Controller();
$controller-doAction('link_page',?'b');
$controller-doAction();
Model.php
class?Model?{
private?$database?=?array(
"a"????=????"hello?world",
"b"????=????"ok?well?done",
"c"????=????"good?bye",
);
//@TODO?connect?the?database
//run?the?query?and?get?the?result
public?function?getResult($name){
if(?empty($name)?){
return?FALSE;
}
if(?in_array($name,?array_keys(?$this-database?)?)?){
return?$this-database[$name];
}
}
public?function?getLinks(){
$links?=?"a?href='#'Link?A/anbsp;nbsp;";
$links.=?"a?href='#'Link?B/anbsp;nbsp;";
$links.=?"a?href='#'Link?C/anbsp;nbsp;";
return?$links;
}
}
View.php
class?View?{
public?function?display($output){
//????????ob_start();
echo?$output;
}
}