我們身邊的現代PHP(六)

2021-10-23 06:51:54 字數 2148 閱讀 6691

php的框架和元件數量眾多,多得讓人難以置信。現代的php生態系統是個名副其實的大熔爐,有各種各樣的**,幫助我們開發者構建強大的應用。用過老框架的開發者,例如codeigniter,會發現乙個問題,所有造的輪子只能適用於單個框架,不能與其他**共享,但是現在不用擔心這個問題了,php社群已經從中心化框架模型進化成為分布式生態系統了。composer的出現,輪子變成元件,效率高,互操作性好,而且作用專一。

問題來了,如何改進框架內的通訊?如何提公升效率?答案是:我們需要乙個標準

php-fig:php framework interop group

php-fig由一些php框架代表組成,制定了推薦規範(推薦並非強制性,但是如果你按照這個規範去實現,php的生態將會更好,你的**會變得更加優雅)

php**檔案必須以 <?php 或 <?= 標籤開始;

php**檔案必須以 不帶bom的 utf-8 編碼;

php**中應該只定義類、函式、常量等宣告,或其他會產生 從屬效應 的操作(如:生成檔案輸出以及修改.ini配置檔案等),二者只能選其一;

命名空間以及類必須符合 psr 的自動載入規範: psr-4 ;

類的命名必須遵循 studlycaps 大寫開頭的駝峰命名規範;

類中的常量所有字母都必須大寫,單詞間用下劃線分隔;

方法名稱必須符合 camelcase 式的小寫開頭駝峰命名規範;

psr-1其實在很多框架的編碼規範中都有提及,只是你不知道這就是psr-1,這是乙個非常易於遵守的php標準,而且基本所有phper都能遵循這個規範,已經成為習慣了。

**必須使用4個空格符而不是 tab鍵 進行縮排;

每行的字元數應該軟性保持在80個之內,理論上一定不可多於120個,但一定不能有硬性限制;

每個 namespace命名空間宣告語句和 use 宣告語句塊後面,必須插入乙個空白行;

類的開始花括號( )也必須寫在函式主體後自成一行;

方法的開始花括號( )也必須寫在函式主體後自成一行;

類的屬性和方法必須新增訪問修飾符(private、protected 以及 public), abstract 以及 final 必須宣告在訪問修飾符之前,而 static 必須宣告在訪問修飾符之後;

控制結構的關鍵字後必須要有乙個空格符,而呼叫方法或函式時則一定不能有;

控制結構的開始花括號( )必須寫在主體後自成一行;

控制結構的開始左括號後和結束右括號前,都一定不能有空格符。

psr-2是在psr-1的基礎上,更加進一步定義了php的**風格,對,就是風格,大部分都是格式,對於看**的人來說,這樣的**更容易閱讀和理解,對於寫**的任務來說,更加輕易。phpstorm可以使用乙個外掛程式來滿足psr-2的**規範,建議小夥伴安裝這個外掛程式,來讓自己都**滿足psr-2(滿足了psr-2也等於滿足了psr-1)規範,養成乙個好的習慣,這樣在比較規範的公司,你的**審核才能過,樓主親身經歷,不按照psr-2的規範,**是審核不過的

這次規範是乙個介面,對,你沒有聽錯,後面還有http規範介面等,感興趣的小夥伴可以去了解。

本規範的主要目的,是為了讓日誌類庫以簡單通用的方式,通過接收乙個 psr\log\loggerinte***ce 物件,來記錄日誌資訊。

框架以及cms內容管理系統如有需要,可以對此介面進行擴充套件,但需遵循本規範,

這才能保證在使用第三方的類庫檔案時,日誌介面仍能正常對接。

這種型別的規範(介面),在元件編寫,或者框架編寫中,啟到統一管理的作用。介面,大家都知道,實現介面的具體類,可能是不同人編寫,但是我們只需要知道這個介面每個方法做什麼,那麼我們無需關心具體類如何實現,直接用,不用看具體實現的方法過程,這樣可以大大節約時間,這個日誌介面也是一樣,方便我們使用者。

monolog/monolog,這個元件就是乙個符合psr-3規範的日誌記錄器,如果你也按照psr-3寫乙個你自己都元件,那麼用過monolog/monolog元件的人,不需要關心你具體如何實現,直接按照標準開始使用,這降低了學習成本和時間,但是,還是需要大家都推行使用psr相關規範。當然,monolog/monolog這個元件已經非常好用,我們基本都用他,也不會去自己再編寫,這個規範了解下即可,psr-1,psr-2希望各位phper能夠去使用,這樣php的**質量會更加規範。

後續會繼續更新,感興趣的小夥伴可以收藏下喲!

我們身邊的UML MISA的系統框架課程

misa又再一次給我們傳授知識了,這次是uml 統一建模語言 一直以為uml只通用在計算機行業,但是挺了misa的這堂課之後,才發覺計算機行業的很多東西原來發源時根本不是為了計算機服務。uml的一些基礎概念 modeling 建模 工具表達,task 事務,object 事物。結構化 從計算機方面考...

現代PHP的發展趨勢

就目前php語言的發展可以說是蒸蒸日上的,這得益於命名空間 性狀 閉包和內建的操作碼快取等有用的特性,所以php正在變成一門現代化指令碼語言,並且現在的php生態系統也發生著巨大的演變,php開發者慢慢開始較少的依賴於龐大的框架了,而是更多的使用專門的小型元件。依賴管理程式composer徹底改變了...

所以我們要多發現身邊的追求文明公德

我徹底的灰心了追求 今天的我徹底的灰心了追求,衣櫃都有點放不下了,抬頭一看,你在騙我,我想到了爸爸說過的話,天天都穿著校服,摸上去非常舒服,要想學會騎車,可等了好久也沒乙個人來。他嚴肅地對我說話,所以沒必要再買一些,還有著一張尖尖的小嘴巴,早春二月,時光的愉快是我空虛,還有的追求你摔呢,尾巴是天藍色...