国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
鑰匙要點(diǎn)
>升級(jí)PSR-0不是選項(xiàng)
選擇的方法
關(guān)於PSR-0和PSR-4自動(dòng)加載的常見(jiàn)問(wèn)題
> PSR-0和PSR-4?
我可以在同一項(xiàng)目中同時(shí)使用PSR-0和PSR-4嗎? >
是PSR-0棄用?
>
首頁(yè) 後端開(kāi)發(fā) php教程 自動(dòng)加載戰(zhàn):PSR-0對(duì)PSR-4

自動(dòng)加載戰(zhàn):PSR-0對(duì)PSR-4

Feb 23, 2025 am 08:45 AM

Battle of the Autoloaders: PSR-0 vs. PSR-4

自動(dòng)加載戰(zhàn):PSR-0對(duì)PSR-4

鑰匙要點(diǎn)

  • > PSR-0和PSR-4是PHP中的自動(dòng)加載標(biāo)準(zhǔn),PSR-0根據(jù)類(lèi)的名稱(chēng)定義路徑,允許在類(lèi)名稱(chēng)中下劃線,而PSR-4的目的是簡(jiǎn)化文件夾結(jié)構(gòu)並刪除PSR -餘力。 0.
  • > PSR-4,稱(chēng)為面向軟件包的自動(dòng)加載,允許使用更清潔的軟件包,但實(shí)現(xiàn)更為複雜。它還可以確保自動(dòng)加載器絕不應(yīng)該引發(fā)異?;蛟黾渝e(cuò)誤,並保持與多個(gè)自動(dòng)加載器的兼容性。
  • PSR-0和PSR-4都有其優(yōu)點(diǎn)和缺點(diǎn):PSR-4允許更簡(jiǎn)單的文件夾結(jié)構(gòu),但沒(méi)有顯示出完全合格名稱(chēng)的類(lèi)的確切路徑,而PSR-0可能是混亂的,但是支持開(kāi)發(fā)人員使用較舊的命名慣例和輔助工具以其名稱(chēng)定位課程。
  • >如果您已經(jīng)超越了PHP培訓(xùn)的初學(xué)者階段,那麼您已經(jīng)聽(tīng)說(shuō)了PSR-0 - 一種自動(dòng)加載標(biāo)準(zhǔn),它定義了自動(dòng)在代碼中自動(dòng)包含PHP類(lèi)的方法,而無(wú)需使用諸如要求和包含之類(lèi)的語(yǔ)句。

> psr-0

> PSR-0查看類(lèi)的命名空間,並從硬盤(pán)驅(qū)動(dòng)器上的位置辨別出該信息的位置。例如,ZendMailMessage類(lèi)將導(dǎo)致/path/path/project/lib/vendor/zend/mail/message.php。

> PSR-0還支持類(lèi)名中的下劃線作為替代方案,以使從5.2及以更早的過(guò)渡更加容易。 zend_mail_message也將導(dǎo)致/path/to/project/lib/vendor/zend/mail/message.php。

作曲家

作曲家出現(xiàn)並席捲了PHP軟件包管理世界時(shí),情況發(fā)生了變化。由於其某些規(guī)則,文件夾通常會(huì)重複,並且在通過(guò)作曲家查看PSR-0類(lèi)安裝時(shí)變得太深了。例如,某些文件夾結(jié)構(gòu)最終以這樣的方式出現(xiàn):

這充其量是混亂的,因?yàn)椋?/p>

vendor/
    vendor_name/
        package_name/
            src/
                Vendor_Name/
                    Package_Name/
                        ClassName.php       # Vendor_Name\Package_Name\ClassName
            tests/
                Vendor_Name/
                    Package_Name/
                        ClassNameTest.php   # Vendor_Name\Package_Name\ClassNameTest

>“ SRC”和“測(cè)試”目錄必須包括供應(yīng)商和軟件包目錄名稱(chēng)。這是PSR-0符合性的工件。

>

因此,一些高素質(zhì)的PHP開(kāi)發(fā)人員聚集在一起,為新標(biāo)準(zhǔn)提出了建議:PSR-4。

> psr-4
PSR-4旨在在必要時(shí)與PSR-0進(jìn)行補(bǔ)充並與之合作,而不是完全替代它。它可以,但不必。 PSR-4的主要目標(biāo)是完全刪除PSR-0和5.3天前的殘餘物,並允許更簡(jiǎn)潔的文件夾結(jié)構(gòu)。使用PSR-4,上述文件夾將看起來(lái)像這樣:

>升級(jí)PSR-0不是選項(xiàng)

因?yàn)镻SR-0不允許在類(lèi)名稱(chēng)的任何部分之間進(jìn)行插圖
vendor/
    vendor_name/
        package_name/
            src/
                ClassName.php       # Vendor_Name\Package_Name\ClassName
            tests/
                ClassNameTest.php   # Vendor_Name\Package_Name\ClassNameTest
>

>這非常重要 - 這意味著實(shí)施PSR-4雖然允許更清潔的軟件包,但實(shí)施將變得更加複雜。我們稱(chēng)呼為PSR-4包裝的自動(dòng)加載,因?yàn)樗欣逗?jiǎn)單之前的包裹清潔度。

>

選擇的方法

建議的目標(biāo)如下:保留所有軟件包必須至少包含兩個(gè)命名空間級(jí)別(供應(yīng)商和軟件包)的PSR-0規(guī)則,請(qǐng)確保供應(yīng)商包裝組合可以映射到任何文件夾,並允許使用fifix供應(yīng)商包裝組合和其餘完全合格的班級(jí)名稱(chēng)之間的文件夾。

這意味著我們將能夠?qū)⑽覀兊恼n程放在包裝代碼中的任何地方,對(duì)我們作為人類(lèi)很有意義,並且仍然在PHP中平穩(wěn)地使用它們,而無(wú)需編寫(xiě)替代加載技術(shù)或求助於手動(dòng)載入.

> 此外,草案明確指出,PSR-4自動(dòng)加載器絕不應(yīng)僅僅因?yàn)榭梢栽]冊(cè)多個(gè)自動(dòng)加載器而引起異?;蛞疱e(cuò)誤,並且如果一個(gè)人未能加載班級(jí),則應(yīng)該給其他機(jī)會(huì)這樣做,而其他人則有機(jī)會(huì)這樣做- 投擲- 投擲錯(cuò)誤並停止流量破壞了此兼容性。如果需要有關(guān)故障的其他信息,則應(yīng)使用PSR-3兼容記錄器或其他任意手段。 如示例文件中所示,使用PSR-4自動(dòng)加載器從以下結(jié)構(gòu)加載類(lèi):>

看起來(lái)像這樣:

在其中調(diào)用新的foobarquxquux;將嘗試從第一個(gè)註冊(cè)目錄加載,而新的foobarquxquuxtest;將嘗試從第二個(gè)加載。
vendor/
    vendor_name/
        package_name/
            src/
                Vendor_Name/
                    Package_Name/
                        ClassName.php       # Vendor_Name\Package_Name\ClassName
            tests/
                Vendor_Name/
                    Package_Name/
                        ClassNameTest.php   # Vendor_Name\Package_Name\ClassNameTest
>

此示例還說(shuō)明了每個(gè)單個(gè)名稱(chēng)空間的多個(gè)文件夾的使用。

>
vendor/
    vendor_name/
        package_name/
            src/
                ClassName.php       # Vendor_Name\Package_Name\ClassName
            tests/
                ClassNameTest.php   # Vendor_Name\Package_Name\ClassNameTest
結(jié)論

自動(dòng)加載中沒(méi)有銀色子彈。每種方法都帶來(lái)了一些優(yōu)點(diǎn)和缺點(diǎn) - PSR-4將允許更簡(jiǎn)單的文件夾結(jié)構(gòu),但僅通過(guò)查看完全合格的名稱(chēng)就可以阻止我們知道班級(jí)的確切路徑。另一方面,PSR-0在硬盤(pán)驅(qū)動(dòng)器上是混亂的,但是支持過(guò)去陷入困境的開(kāi)發(fā)人員(一流的名稱(chēng)用戶(hù)),並通過(guò)查看其名稱(chēng)來(lái)幫助我們辨別班級(jí)的位置。

>您對(duì)PSR-4的感覺(jué)如何?在下面的評(píng)論中讓我們知道,或在眾多辯論之一中表達(dá)您的意見(jiàn)。

>

>無(wú)論哪種方式 - 毫無(wú)疑問(wèn),以包裝為導(dǎo)向的自動(dòng)加載將留在這裡。如果未正式接受為標(biāo)準(zhǔn),則由需要它的人實(shí)施自定義。我們必須加入討論並改善足夠的概念以達(dá)到這種正式狀態(tài)。 >

關(guān)於PSR-0和PSR-4自動(dòng)加載的常見(jiàn)問(wèn)題

> PSR-0和PSR-4?

> PSR-0和PSR-4之間的主要區(qū)別在於它們處理名稱(chēng)空間和目錄結(jié)構(gòu)的方式。 PSR-0需要名稱(chēng)空間與目錄結(jié)構(gòu)之間的直接相關(guān)性,這意味著命名空間中的每個(gè)凸起都對(duì)應(yīng)於目錄分離器。另一方面,PSR-4允許採(cǎi)用更靈活的方法,其中一部分名稱(chēng)空間可以映射到任何目錄,其餘的名稱(chēng)空間可以映射到子目錄結(jié)構(gòu)。引入PSR-4時(shí)引入的PSR-4?引入了PSR-4,以克服PSR-0的某些局限性。 PSR-0在名稱(chēng)空間和目錄結(jié)構(gòu)之間的嚴(yán)格相關(guān)性導(dǎo)致了深度嵌套的目錄,這並不總是實(shí)用或有效的。 PSR-4提供了一種更靈活的方法,使開(kāi)發(fā)人員可以將命名空間映射到任何目錄,從而減少了對(duì)深目錄嵌套的需求。

我可以在同一項(xiàng)目中同時(shí)使用PSR-0和PSR-4嗎? >

是的,可以在同一項(xiàng)目中同時(shí)使用PSR-0和PSR-4。但是,重要的是要注意,它們不應(yīng)用於自動(dòng)加載相同的類(lèi)別。在大型項(xiàng)目中,使用兩種標(biāo)準(zhǔn)都可以是有益的,在大型項(xiàng)目中,某些遺留代碼遵循PSR-0標(biāo)準(zhǔn),而較新的代碼遵循PSR-4標(biāo)準(zhǔn)。

> PSR-4在PSR-0上如何改善?通過(guò)提供更靈活的自動(dòng)加載方法,PSR-4在PSR-0上有所改善。它允許開(kāi)發(fā)人員將一部分名稱(chēng)空間映射到任何目錄,從而減少對(duì)深目錄嵌套的需求。這使得管理和瀏覽項(xiàng)目的目錄結(jié)構(gòu)變得更加容易。

是PSR-0棄用?

是的,PSR-0已被標(biāo)記為已棄用。這意味著,儘管它仍然有效,但不建議在新項(xiàng)目中使用。 PSR-4是Php。

>

>自動(dòng)加載的推薦標(biāo)準(zhǔn)。然後將其餘的名稱(chēng)空間映射到子目錄結(jié)構(gòu)。這允許採(cǎi)用自動(dòng)加載的更靈活,更有效的方法。

使用PSR-4?

psr-4有什麼好處,包括多種好處,包括更靈活的自動(dòng)加載方法,減少,減少需要深度目錄嵌套和提高效率。這也是PHP自動(dòng)加載的建議標(biāo)準(zhǔn),使其成為新項(xiàng)目的不錯(cuò)選擇。

>

>我如何從psr-0到psr-4?到PSR-4涉及更改命名空間和目錄的方式。在PSR-4中,可以將一部分命名空間映射到任何目錄,其餘的名稱(chēng)空間可以映射到子目錄結(jié)構(gòu)。這可能需要重組項(xiàng)目的目錄結(jié)構(gòu)。

>我可以在較舊的php版本中使用PSR-4嗎?

psr-4需要PHP 5.3或更高版本。如果您使用的是較舊版本的PHP,則需要升級(jí)才能使用PSR-4。 PHP可能會(huì)繼續(xù)發(fā)展,隨著語(yǔ)言及其生態(tài)系統(tǒng)的發(fā)展,新的標(biāo)準(zhǔn)和實(shí)踐被引入。但是,在可預(yù)見(jiàn)的將來(lái),PSR-4是PHP中自動(dòng)加載的建議標(biāo)準(zhǔn)。

以上是自動(dòng)加載戰(zhàn):PSR-0對(duì)PSR-4的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門(mén)話題

如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

要安全處理PHP中的文件上傳,核心在於驗(yàn)證文件類(lèi)型、重命名文件並限制權(quán)限。 1.使用finfo_file()檢查真實(shí)MIME類(lèi)型,僅允許特定類(lèi)型如image/jpeg;2.用uniqid()生成隨機(jī)文件名,存儲(chǔ)至非Web根目錄;3.通過(guò)php.ini和HTML表單限製文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強(qiáng)安全性。這些步驟有效防止安全漏洞,確保文件上傳過(guò)程安全可靠。

PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? Jun 19, 2025 am 01:07 AM

在PHP中,==與===的主要區(qū)別在於類(lèi)型檢查的嚴(yán)格程度。 ==在比較前會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類(lèi)型都相同才會(huì)返回true,例如5==="5"返回false。使用場(chǎng)景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類(lèi)型轉(zhuǎn)換時(shí)使用。

如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

PHP中使用基本數(shù)學(xué)運(yùn)算的方法如下:1.加法用 號(hào),支持整數(shù)和浮點(diǎn)數(shù),也可用於變量,字符串?dāng)?shù)字會(huì)自動(dòng)轉(zhuǎn)換但不推薦依賴(lài);2.減法用-號(hào),變量同理,類(lèi)型轉(zhuǎn)換同樣適用;3.乘法用*號(hào),適用於數(shù)字及類(lèi)似字符串;4.除法用/號(hào),需避免除以零,並註意結(jié)果可能是浮點(diǎn)數(shù);5.取模用%號(hào),可用於判斷奇偶數(shù),處理負(fù)數(shù)時(shí)餘數(shù)符號(hào)與被除數(shù)一致。正確使用這些運(yùn)算符的關(guān)鍵在於確保數(shù)據(jù)類(lèi)型清晰並處理好邊界情況。

如何與PHP的NOSQL數(shù)據(jù)庫(kù)(例如MongoDB,Redis)進(jìn)行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(kù)(例如MongoDB,Redis)進(jìn)行交互? Jun 19, 2025 am 01:07 AM

是的,PHP可以通過(guò)特定擴(kuò)展或庫(kù)與MongoDB和Redis等NoSQL數(shù)據(jù)庫(kù)交互。首先,使用MongoDBPHP驅(qū)動(dòng)(通過(guò)PECL或Composer安裝)創(chuàng)建客戶(hù)端實(shí)例並操作數(shù)據(jù)庫(kù)及集合,支持插入、查詢(xún)、聚合等操作;其次,使用Predis庫(kù)或phpredis擴(kuò)展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用於高性能場(chǎng)景,Predis則便於快速部署;兩者均適用於生產(chǎn)環(huán)境且文檔完善。

我如何了解最新的PHP開(kāi)發(fā)和最佳實(shí)踐? 我如何了解最新的PHP開(kāi)發(fā)和最佳實(shí)踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什麼是PHP,為什麼它用於Web開(kāi)發(fā)? 什麼是PHP,為什麼它用於Web開(kāi)發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設(shè)置PHP時(shí)區(qū)? 如何設(shè)置PHP時(shí)區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

See all articles