首頁 後端開發 php教程 現在寫 PHP,你應該要知道這些

現在寫 PHP,你應該要知道這些

Jan 17, 2017 am 09:48 AM
php入門 php基礎知識

首先你應該是用 PHP 5.3 以上的版本,如果 PHP 版本在這之下,是時候該升級了。我建議如果有條件,最好使用最新的版本。

你應該看過 PHP The Right Way,這篇文章包含了很多內容,而且還能再擴展開。大部分的名詞和概念你都需要了解。

1. PSR

The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can work together。次提到PSR(PHP Standard Recommendation)。很多人以為 PSR 只是做一些規範程式碼風格等無關痛癢的事情,但其實遠不止此。

PSR 的一系列標準文件由 php-fig (PHP Framework Interop Group)起草和投票決議,投票成員中有一些主流框架和擴展的作者,包括 Laravel、Symfony、Yii等等。

依照其官網的說法,這個組織的目的並不是告訴你你應該怎麼做,只是一些主流的框架之間相互協商和約定。但是我相信這些框架和擴充總會有你用到的。

PSR 目前通過的共有6 份文件:

    0:自動載入(主要是針對PHP 5.3 以前沒有命名空間的版本)

    

    4:自動加載更細(在出現命名空間後有很大的改變)

    7:HTTP 訊息介面

目前在起草(Draft)中的還有PSR-5(PHPDoc Standard)、PSR-6( Cache)等。 5 和 6 沒有出現在以上的清單中,是因為還沒有投票通過。

我相信隨著標準的不斷更新,你會發現研究這些約定對你也是很有裨益的,雖然未必什麼都要遵守。

Nobody in the group wants to tell you, as a programmer, how to build your application.

2. Composer

man

Composer is a toolm toclus man olage for un​​ywrym tos em toclus toclus toclus toclus youle toclone the em​​hole toclulwem tos toclus youle toclus toclus tos tocl youle toclus youle toclus em toolage unnawre; on and it will manage (install/update) them for you.

composer 和Pear、Pecl 都不同,它不僅僅是用於安裝擴展,更重要的是定義了一種現代PHP 框架的實現和擴展管理的方法。類似 node.js 的 npm、Python 的 pip 但又比以上做的更多。 composer 的核心是實現擴充功能的標準安裝和類別的自動載入。透過 packagist.org 這個平台,無數的擴充元件可以被很方便的引入,目前比較知名的 PHP 擴充都可以透過 composer 安裝了。而呼叫僅只需要載入一個 autoload.php 的檔案即可。 composer 是透過 spl_autoload_register 方法註冊一個自動載入方法實現擴充類別和檔案的載入的,當然這中間 composer 也做了一個優化。我們都知道 PHP 引進文件要透過 include 和 require 來實現,其實寫起來並不好看。 PHP 5.3 提供了命名空間,這本來和檔案引入也不相干。但是composer 實作了PSR-4(在舊版的PHP 上是PSR-0),使用use 時透過呼叫 spl_autoload_register 實現的方法在呼叫時載入所需的類,在寫法上類似Python 的import,既美觀也起到了按需載入、延遲載入的作用。

3. php-cs-fixer

The PHP Coding Standards Fixer tool fixes most issues in your code when you want to follow the PHP coding 呢工具的作用是依照PSR-1 和PSR-2 的規格格式化你的程式碼,還有一些可選的程式設計風格是Symfony 的規格。

這個其實本來並沒有那麼值得一說,只是最近在幾個開源框架中都看到了 .php_cs 的文件,一時好奇,深究下去才發現了這個專案。或許有人覺得糾結程式碼風格的問題其實沒有特別大的必要。要說好處我也說不上來,如果你覺得程式設計不只是一份工作,那這就跟你收拾房間一樣,邋遢的房間不影響你吃飯睡覺,但乾淨的看起來更舒服。如果要和別人合作,那這件事情就更重要了。

4. PsySH

A runtime developer console, interactive debugger and REPL for PHP.

PsySH 類似 Python 的 IDLE 的一個 PHP 的交互運行環境。這是我在 Laravel 中發現的,Laravel 5 的artisan tinker 的功能是透過它來實現的。 Laravel 4 中用的是另一個項目:boris。

這個主要是在平常測試一些 php 的簡單的函數和特性的時候可以方便使用。遇到一些不確定的事情、例如empty 的使用等,可以用它來做測試。

5.  一些框架和組件

框架

我比較喜歡的是 Laravel,目前公司在用的是 Yii2,我關注的有 Symfony 以及 Phalcon (C語言實現)。用什麼不用什麼,主要是喜好,有時候也由不得自己選擇,但研究一下,多一分了解也未嘗不可。

提到 Laravel 很多人會立刻想到 Ruby on Rails。我想模仿或抄襲這都不是主要的目的,主要的目的是提供給開發者一個更好的工具。 Laravel 還好它有一個不一樣的路由控制(不帶 Action 後綴或前綴的),有一個好用的ORM (Eloquent),好用的模板引擎(Blade) 亦或有一個顏值比較高的文檔(社區看到的話)等等。

強大有時候也會被人詬病龐大,但這在於你需要了解自己專案的中長期規劃,專案現在的大小以及未來的大小及承載。

Larval 的核心實作是一個容器(Container)以及 PHP 的反射類別(ReflectionClass)(Yii 2 也是一樣)。要理解這些,多看文章和文件的同時,也可以看看原始碼。

Symfony 2 提供了很多組件。 http-kernel 和 http-foundation 在 Laravel 中也有被繼承過來直接使用。它是值得了解和學習的。

CodeIgniter 是一個小巧而強大的框架。雖然 CI 並沒有使用 Composer 元件的方式進行開發,但 3.0 以後的版本也加入了 Composer 的支援(這無非就是多一個 vendor 的目錄,引入 autoload.php)的檔案。

ORM

ORM 亦或 Active Record 我覺得還是需要的。也許有人認為 PHP 就是一個模板引擎、就該手寫 SQL 。不要被這些話所困擾。

CodeIgniter 中 Active Record 的實作方式很輕巧,但對於 CI 本身的體積來說,已經是很好用的了。

Laravel 實現的 Eloquent 我是很喜歡的,也可以整合到別的專案中去。 Symfony 2 使用的是 Doctrine ,這個專案也值得關注。 Yii 2 也有自己的一套實現方式。

模板引擎

模板引擎需要做三件事:

    1. 變數值的輸出(echo),

    2.變數值的輸出(echo),

  . 引入或繼承自其他文件

Laravel 實現的Blade 是一個比較輕量好用的模板引擎。不過目前並不是很好能夠引入其他框架。十一的時候閒來無事試圖將其引入到 Yii 2 中,現在還只是簡單的實現,我希望後面能將 Blade 的解析部分單獨抽取出來做一個輕量級的實現。在 Github 上搜尋發現也有人在做同樣的事情。

Yii 2 似乎更推薦就用原生的 PHP 去寫,不過也提供了支援 Smarty 和 Twig 的擴充。 Symfony 2 則採用了 Twig。 Twig 和 Symfony 以及上文提到的 php-cs-fixer 都是 SensioLabs 的作品。

Smarty 是一個古老而頑強的模板引擎。說實話我並不是太喜歡,其文法過於複雜,變數賦值這些事情都有自己的一套做法。現在的版本更是使用 Lexer 的方式來解析文件,感覺像是用 PHP 實作了另一種語言。專案裡面還有一些太長的正規表示式、太複雜的實現,我覺得這是一件很危險很容易出錯的事。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP入門指南:PHP基礎語法 PHP入門指南:PHP基礎語法 May 20, 2023 am 08:39 AM

PHP是一種伺服器端腳本語言,它被用來開發動態網站、Web應用程式和網頁程式。 PHP的應用範圍非常廣泛,無論是初學者還是有經驗的開發人員,都可以從中獲益。本文將為您提供PHP的基礎文法入門指南。如果您想學習PHP編程,並且從頭開始打好基礎,那麼您來對了地方。 PHP的基本架構一個PHP程式包含以下三個部分:<?php//PHP程式碼?>程式碼兩邊的&

PHP入門指南:檔案上傳和下載 PHP入門指南:檔案上傳和下載 May 22, 2023 am 10:51 AM

在Web開發中,文件的上傳和下載是一個非常常見的需求。無論是使用者上傳頭像、文檔,或是管理員讓使用者下載某個文件,都需要使用這個功能。而PHP作為一個強大的伺服器端語言,自然也提供了強大的檔案操作函數和類別庫,讓我們可以輕鬆實現檔案上傳和下載功能。本篇文章將介紹PHP中實作檔案上傳和下載的基本流程和常用函數,並提供範例程式碼。如果你是PHP初學者或正在學習文件操作

PHP入門指南:TCP/IP編程 PHP入門指南:TCP/IP編程 May 20, 2023 pm 09:31 PM

PHP作為一個流行的伺服器端腳本語言,它不僅可以用於Web應用程式的開發,還可以用於進行TCP/IP程式設計以及網路程式設計。在本文中,我們將為您介紹TCP/IP程式設計的基礎知識和如何使用PHP進行TCP/IP程式設計。一、TCP/IP編程的基礎知識TCP/IP協議是Internet上進行通訊的標準協議,它是由TCP協議和IP協議兩個部分組成的。 TCP協定負責建立可靠連接

前端開發者需了解的PHP相關知識 前端開發者需了解的PHP相關知識 Mar 29, 2024 pm 03:09 PM

身為前端開發者,對於PHP的了解是非常必要的。雖然PHP是一種後端開發語言,但掌握一定的PHP知識可以幫助前端開發者更好地理解整個web開發的過程,提高工作效率並與後端開發者更好地協作。在這篇文章中,我們將討論前端開發者需要了解的一些PHP相關知識,並提供具體的程式碼範例。 PHP是什麼? PHP(HypertextPreprocessor)是一種伺服器

PHP中的新手入門指南 PHP中的新手入門指南 May 25, 2023 am 08:03 AM

PHP是一門熱門的前端程式語言,它功能強大、易學易用,並且被廣泛用於網站的開發和維護。對於初學者來說,PHP入門需要一定的學習與掌握,以下就提供一些PHP的新手入門指南給大家。一、學習基本概念在學習PHP之前,你需要先了解一些基本概念。 PHP是一種向Web伺服器發出指令的腳本語言。簡單來說,你可以使用PHP來產生HTML程式碼並將其傳送給瀏覽器,最終呈現在網頁上

PHP入門指南:JSON擴充 PHP入門指南:JSON擴充 May 20, 2023 am 08:37 AM

PHP是一門廣泛使用的程式語言,尤其在Web開發中,PHP佔據著重要的地位。其中,JSON是一種常見的資料格式,它可以用於儲存和傳輸資料。 PHP中提供了JSON擴展,方便開發人員對JSON資料進行操作與處理。本文將介紹JSON擴充的基本用法和應用場景。一、JSON擴充基本用法將JSON字串轉換為PHP物件或陣列PHP中的json_decode()函數可以將

PHP入門指南:一些常見的HTTP狀態碼 PHP入門指南:一些常見的HTTP狀態碼 May 21, 2023 am 08:15 AM

對於PHP初學者來說,了解HTTP狀態碼是非常重要的。 HTTP狀態碼是指由Web伺服器傳回的3位數字代碼,用來表示客戶端請求的處理結果。本篇文章將介紹一些常見的HTTP狀態碼及其意義,幫助PHP初學者更能理解網站開發過程中遇到的各種HTTP狀態碼。 200OK200OK是最常見的HTTP狀態碼之一,表示請求已成功處理並傳回結果。當你造訪一個網站的時候,如

PHP入門指南:快取設定 PHP入門指南:快取設定 May 20, 2023 am 08:10 AM

PHP是一種非常流行的程式語言,在網路開發領域經常被使用。在PHP開發中,快取設定是非常重要的一部分。快取可以提高網站效能和使用者體驗,降低伺服器負載,是網站優化的常用手段之一。本文將為大家介紹PHP快取設定的入門指南。一、什麼是快取?快取就是將一些經常性存取的資料保存在記憶體中,以便下次造訪時可以快速獲取,避免重複計算或查詢資料庫,提高回應速度。 PHP中,緩

See all articles