PHP全棧從入門到精通1

来源:https://www.cnblogs.com/dashucoding/archive/2019/04/13/10702969.html
-Advertisement-
Play Games

thinkphp框架,是一堆代碼(常量,方法,和類)的集合,框架是一個半成品的應用,還包含一些優秀的設計模式。 框架的使用,代碼風格不一樣,維護難,項目生命周期短,功能擴展存在局限,好處為,簡單,快捷,高效,不需要關註底層結構,專註於業務邏輯 zend framework,官方框架,yii框架,美國 ...


PHP全棧從入門到精通

thinkphp框架,是一堆代碼(常量,方法,和類)的集合,框架是一個半成品的應用,還包含一些優秀的設計模式。

框架的使用,代碼風格不一樣,維護難,項目生命周期短,功能擴展存在局限,好處為,簡單,快捷,高效,不需要關註底層結構,專註於業務邏輯

zend framework,官方框架,yii框架,美國華人,laravel輕量級的框架,國外框架,thinkphp國人開發。

什麼是mvc,是一種設計模式,將用戶的輸入,邏輯,輸出相分離。輸入-控制器,邏輯-模型,視圖-輸出。

入口文件,對應的控制器,控制器到視圖展示模板,和控制器到模型,模型是和資料庫的,返回數據,控制器調用模型處理業務邏輯的。

混合編程階段,模板引擎階段,mvc階段。

官網下載:

http://www.thinkphp.cn/

image.png

alpha版本為內測版本,beta版本為公測版本,rc版本為候選版本,r版本為release版本,發行版本。

application應用目錄
public 存放圖片,css等公共靜態文件目錄
thinkphp框架核心目錄
.htaccess分散式配置文件
composer.json給compose軟體使用的說明文件
index.php項目入口文件

thinkphp目錄下

behavior行為文件目錄
org為功能擴展目錄
think最核心的目錄
vendor第三擴展目錄

image.png

image.png

模板內容獲取方法:

$this -> display(); 展示模板
$this -> fetch(); 獲取模板(有返回值)
public function login(){
 //展示模板
 // $this -> display();
 $str = $this -> fetch();
 // dump列印
 dump($str);
}
dump 列印變數,列印方法

image.png

thinkphp中的註解是屬於服務端的註解,不會在瀏覽器中輸出,而html的會。

public function test(){
 $array = array('da','dashu','dashucoding');
 //變數分配
 $this -> assign('array',$array);
 // 函數模板
 $this -> display();
}

入口文件:

header('Content-Type:text/html;charset=utf8');
public function test(){
 // 實例化student對象
 $stu = new Student();

 $stu -> id=1;
 $stu -> name=dashu;
 // 變數分配
 $this -> assign('stu', $stu);
 // 展示模板
 $this -> display();
}

image.png

獲取伺服器的相關信息
獲取get請求的信息
獲取post請求的信息
獲取get和post中信息
獲取cookie中的信息
獲取session中的信息
獲取ThinkPHP中所有配置文件的一個總和

獲取get請求中的id {$Think.get.id}
public function test() {
 // 展示模板
 $this -> display();
}
$Think.server.path
$Think.get.id
$Think.request.pid
$Think.cookie.PHPSESSID
$Think.config.DEFAULT_MODULE

語法格式:

{$變數 | 函數名1 | 函數名2 = 參數1,參數2,...}

函數名1:表示需要使用的第一個函數
函數名2:表示需要使用的第二個函數
參數1、參數2:函數2的參數

// 模板中函數使用
public function test() {
 // 定義時間戳
 $time = time();
 //傳遞給模板
 $this -> assign('time', $time);
 // 展示模板
 $this -> display();
}

時間戳的格式化,格式化時間戳使用的函數是date

date(‘Y-m-d H:i:s’,時間戳);
<body>
{$time | date='Y-m-d H:i:s',###}
</body>

截取字元串使用函數substr
轉化大寫使用函數strtoupper

預設值 {$變數名|default=預設值}

// 預設值
public function test() {
 // 定義一個空的字元串
 $sign = '';
 // 傳遞給模板
 $this -> assign('sign', $sign);
 // 展示模板
 $this -> display();
}

預設值的使用:
{$sign | default='dashucoding'}

運算符:

++  {$a++} 或 {++$a} 自增運算
--  {$a--}  或 {--$a}    自減運算

public function test(){
 // 定義兩個變數
 $a = 10;
 $b = 10;
 // 傳遞給模板
 $this -> assign('a',$a);
 $this -> assign('b',$b);
 // 展示模板
 $this -> display();
}

在模版中進行運算:
<body>
 變數a = {$a},變數b = {$b}<br/>
 a+b={$a+$b}<br/>
...
</body>

文件包含

<include file=’需要引入的模版文件’ />

創建出三個模版文件
body.html
foot.html
head.html

// 展示頭部
public function head() {
 // 展示模板
 $this -> diaplay();
}
// 展示body
public function body() {
 // 展示模板
 $this -> dispaly();
}
// 展示尾部
public function foot() {
 // 展示模板
 $this -> display();
}

body.html

<body>
<include file="head.html"/>
<div>dashucoding</div>
<include file="foot.html"/>
</body>

<body>
<include file="Test/head"/>
<div>dashucoding</div>
<include file="Test/foot"/>
</body>

<include file=’需要引入的模版文件’ 參數名=’參數值’ />

<body>
<include file="Test/head"/>
<div>dashucoding</div>
<include file="Test/head" title="dashu"/>
</body>

foot.html
<div>da [title] </div>

迴圈遍歷volist標簽、foreach標簽

volist語法:
<volist name="需要遍歷的模板變數名" id="當前遍歷到的元素">
迴圈體
</volist>

foreach($variable as $value){
 迴圈體
}

foreach語法格式:
foreach($variable as $value){
}

<foreach name="需要遍歷的模板變數名" item="當前遍歷到的元素">
迴圈體
</foreach>

一維數組遍歷

// 數組遍歷
public function test(){
// 定義一維數組
 $array = array('da', ' dashu', 'dashucoding);
// 二維
 $array2 = array(
  array('da','dashu','dashucoding'),
  array('da','dashu')
 );
 // 傳遞給模板
 $this -> assign('array', $array);
 // 展示模板
 $this -> display();
}
<body>
 <volist name="array" id="vol">
 </volist>
 {$vol}
 <hr/>

 <foreach name="array" item="for">
  {$for}
 </foreach>
</body>

image.png

<if condition=’條件表達式’>
...
<elseif condition=’條件表達式2’/>
...
<elseif condition=’條件表達式3’/>
…
<else/>
...
</if>
public function test(){
 //輸出今天的星期數字
 $day = date('N',time());
 // 傳遞給模板
 $this -> assign('day',$day);
 $this -> display(); 
}

<if condition="$day == 1">
星期一
<elseif condition="$day == 2"/>
星期二
...
<else/>
星期天

image.png

禁用php標簽:

TMPL_DENY_PHP: false

image.png

image.png

未完!!!

結言

好了,歡迎在留言區留言,與大家分享你的經驗和心得。

感謝你學習今天的內容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。

作者簡介

達叔,理工男,簡書作者&全棧工程師,感性理性兼備的寫作者,個人獨立開發者,我相信你也可以!閱讀他的文章,會上癮!,幫你成為更好的自己。長按下方二維碼可關註,歡迎分享,置頂尤佳。

感謝!承蒙關照!您真誠的贊賞是我前進的最大動力!

這是一個有質量,有態度的公眾號

喜歡本文的朋友們

歡迎長按下圖關註訂閱號

收看更多精彩內容

image

image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 繼承: 好處:1、提高代碼復用性; 2、讓類之間產生關係,給多態提供了前提; 父類、子類 Java中支持單繼承,不直接支持多繼承,但對C++的多繼承進行了改良 單繼承:一個子類只能有一個直接復類 多繼承:一個子類可以有多個直接父類(Java中不允許,進行了改良)會產生不確定性,不直接支持,因為父類中 ...
  • 配置環境:python 3.6 python編輯器:pycharm 整理成代碼如下: ...
  • 一、AQS概念 1、隊列同步器是用來構建鎖或者其他同步組件的基礎框架,使用一個int型變數代表同步狀態,通過內置的隊列來完成線程的排隊工作。 2、下麵是JDK8文檔中對於AQS的部分介紹 總結來說就是: ①子類通過繼承AQS並實現其抽象方法來管理同步狀態,對於同步狀態的更改通過提供的getState ...
  • 最近項目需要實現根據關鍵字搜索pdf內容,實現思路就是提取pdf文本,然後進行索引。 工具上選擇: IText 4.16之後採用agpl License,不能用作商用,而且轉換中文會有亂碼問題, pdfsharp 採用MIT License,許可權上沒有問題,但是轉換中文也會有亂碼, 最後決定採用xp ...
  • 最近有很多朋友去目前主流的大型互聯網公司面試(阿裡巴巴、京東、美團、滴滴),面試回來之後會發給我一些面試題。有些朋友輕鬆過關,拿到offer,但是有一些是來詢問我答案的。 其實本來真的沒打算寫這篇文章,主要是自己得記憶力不是很好,不像一些記憶力強的人,面試完以後,幾乎能把自己和麵試官的對話都給記下來 ...
  • 1 前言 由於Python的版本眾多,還有Python2和Python3的爭論,因此有些軟體包或第三方庫就容易出現版本不相容的問題。 通過 這個工具,就可以構建一系列 ,然後在每個環境中安裝需要的軟體包(配合 使用),這一系列的環境是相互隔離的。作為一個獨立的環境就不容易出現版本問題,還方便部署。 ...
  • 寫在前面:所有題目都是用python寫的,有一些題目懶得重頭寫,直接用python自帶的功能或庫造好的“輪子” 一、開始之前 1、只出現一次的數字 說明: 示例 1: 示例 2: 2、求眾數 示例 1: 示例 2: 3、搜索二維矩陣 II 示例: 現有矩陣 matrix 如下: [ [1, 4, 7 ...
  • 昨天補充: 編碼: Unicode ; utf-8 ; GBK 關係: 關鍵字:1. continue 終止當前迴圈,進行下一次迴圈 2. break 終止迴圈 題6解法2: 今日內容:Python的開發IDE—Pycharm IDE:Pycharm、eclipse pycharm比較好用點..>> ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...