為了更快的開發效率
為了更高的執行效率
為了更好地證明自己(裝x)
能夠熟練地使用使用php
較為深刻的理解物件導向和mvc概念
較強的邏輯能力和動手能力
目的
: 通過位址列的引數來找到對應的控制器和方法
本質
:
隱藏index.php
獲取url 引數部分
返回對應的控制器和方法
url多餘部分轉換成 get ;例如 /id/1/str/2/test/3
<?php
namespace
core\lib
;use
core\lib\conf
;class
route
unset
($patharr[0
]);if
(isset
($patharr[1
]))else
//url多餘部分轉換成 get
$_get=[
];$count
=count
($patharr)+
2;$i=
2;while($i
<
$count)$i
=$i+2
;}}else
}}
目的
:mvc結構的v,解耦,實現業務邏輯
本質
:
通過路由類獲取控制器和方法名
如果存在檔案 則 例項化對應類和使用對應方法,反之
<?php
namespace
;use
core\lib\conf
;class
indexctrl
extends
\core\imooc
}
目的:在控制器當中連線我們的資料庫【優雅】,
本質:提供 pdo 所需引數
<?php
namespace
core\lib
;class
model
extends
\pdo
catch
(\pdoexception$e)
}}
目的
:實現mvc結構裡的的c,前端檔案與php**邏輯分離
本質
:
變數賦值到模板上 (本質是 extract【打散陣列】 使用陣列的鍵值 作為變數名,對應的值作為
可呼叫指定的模板 (本質是引入 include檔案)
public
function
assgin
($name
,$value=''
)}else
}public
function
dispaly
($file
)}
public
function
index()
目的
<?php
namespace
core\lib
;class
conf
else
else
}else}}
/** * @param 獲取某個配置檔案所有的值
* @param $file
* @return mixed
* @throws \exception
*/static
public
function
all(
$file
)else
else}}
}
目的
:儲存報錯等日誌,利於追蹤痕跡
本質
:
確定日誌儲存方式
日誌單位為乙個小時
在系統敏感位置新增日誌
小知識:
常量 php_eol 自動適配所有系統的換行符
<?php
namespace
core\lib
;use
core\lib\conf
;class
logstatic
public
function
log(
$name
,$file
='log'
)}
目的
:通過composer載入前輩們已經寫好的功能
本質
:引進第三方類
composer.json
}//使用
include
"vendor/autoload.php"
;
目的
:composer載入乙個輕量級的資料庫框架 medoo,來提高我們在針對資料庫操作的時候的一些開發效率
本質
: 模仿tp框架,封裝資料庫操作,方便使用
//引進medoo
<?php
namespace
core\lib
;use
core\lib\conf
;class
model
extends
\medoo\medoo
}//模型類
<?php
namespace
;use
core\lib\model
;class
cjknamemodel
extends
model
public
function
getone
($id
)public
function
addone
($data
)public
function
setone
($where
,$data
)public
function
del(
$where)}
//控制器呼叫
<?php
namespace
;use
core\lib\conf
;use
core\lib\model
;class
indexctrl
extends
\core\imooc
}
目的
:composer載入乙個強大的模板引擎 twig,來提高頁面渲染開發效率
本質
: 使用twig封裝好的方法,整合模板,傳遞變數到模板等
//引進 twig
public
function
dispaly
($file)}
//模板使用 twig,layout.html
<
!doctype html>
"en"
>
"utf-8"
>
title<
/title>
<
/head>
header<
/header>
<
/content>
footer<
/footer>
<
/body>
<
/html>
//繼承layout.html index.html
}
從零開始打造自己的PHP框架 第5章
使用medoo外掛程式來連線和運算元據庫。1 在composer中新增依賴 catfan medoo 2 更新依賴 composer update 1 config目錄新增medoo config.php為 return array database type mysql database name...
從零開始打造自己的框架 類的自動載入
接下來我們希望完成乙個 自動載入類 的動能,我們把這個功能放到imooc這個基礎類當中。core imooc.php namespace core class imooc 自動載入的功能 static public function load class elseelse 上面 中,load 方法的...
php從零開始
吐槽 今天開始擼php了,從此前端少了個小白,php多了個小白。本白從3年前陸陸續續開始一會兒擼會兒php一會兒擼前端。前端擼的比較多,php擼的比較少,當然本白擼php大多都是被逼的 然後反正不準備換工作了,那麼工作閒的蛋疼,那麼開始重新系統的開始學一下php。然後麼,我和我的女友分分合合的樣子。...