亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用 Laravel 框架開發(fā)是什么樣的體驗(yàn)

Miracle_lihb / 1440人閱讀

摘要:但也因?yàn)閼?yīng)有盡有使得框架的性能比其他高性能框架低了些,為此給了幾個(gè)解決方案路由緩存經(jīng)有關(guān)部門研究,路由緩存可有效加快訪問速度以上。有朋友說框架最重要的東西是路由,我倒認(rèn)為最重要的是框架中異于其他框架且能解決痛點(diǎn)的東西,如的。

在程序界的遠(yuǎn)古時(shí)期,大神們手持鍵盤敲著機(jī)器語言跟龐大的機(jī)器打著交道,那時(shí)候機(jī)器語言還沒有語義和語法,更沒有封裝的概念。后來進(jìn)化到匯編語言,C語言時(shí)期,基礎(chǔ)的功能特性就已經(jīng)能滿足當(dāng)時(shí)的需求了,比如函數(shù)封裝使其得于復(fù)用,但隨著計(jì)算機(jī)的普及,操作系統(tǒng)的到來,面向過程語言已無法繼續(xù)滿足復(fù)雜的需求。

歷史的變遷促使了高級(jí)語言的誕生,到了我們這個(gè)階段,已經(jīng)是高級(jí)語言百花齊放的時(shí)代,Java、Python、Ruby、PHP、Javascript、Objective-C、Android 等等都在各自領(lǐng)域中發(fā)揮著重要的作用。而各大語言的框架更是集自身語言和其他優(yōu)秀語言特性之大成者,以PHP來說,Laravel、Symfony、CodeIgniter、ThinkPHP 等都是其優(yōu)秀的思想結(jié)晶之一,其中的 Laravel 就是其創(chuàng)始人 Taylor Otwell 結(jié)合了 Ruby on Rails 的思想開發(fā)出來的,并且以強(qiáng)大的框架生態(tài)和組件化思想成為全世界最熱門的PHP框架沒有之一。

隨著近兩年中文文檔的完善,Laravel 漸漸被國(guó)內(nèi)的開發(fā)者所使用,去年我們開始采用「組件化」思路來建設(shè)整個(gè)服務(wù),業(yè)務(wù)重構(gòu)選擇了 Laravel 來作為后端的業(yè)務(wù)框架,到現(xiàn)在已經(jīng)一年時(shí)間,我對(duì) Laravel 框架也有了一些了解,從路由到單元測(cè)試,Laravel 幾乎無所不能,它不局限于“神圣”的MVC模式,讓開發(fā)者發(fā)揮自己的想象力去搭建自己想要的業(yè)務(wù)架構(gòu),不用再想著什么類要放在Model文件夾,而是怎么劃分層次,每個(gè)層次需要干什么,就像是樂高積木,你可以根據(jù)圖紙或者自己想象出的變形金剛的樣子一層層的搭建出最后的模型。

在 Laravel 中,高級(jí)積木(組件)可以用 Composer 管理工具來引入,Composer 作為PHP中最好用的依賴管理工具之一(或許沒有之一)已經(jīng)被很多框架使用,就不詳述它的故事了。絕大多數(shù)的 Laravel 組件都能在 Github 上找到,如果找不到肯定是你的搜索方式有問題,換了搜索方式還找不到,那就自己寫一個(gè)。Composer 有這么一些常用指令:

composer install - 如有 composer.lock 文件,直接安裝,否則從 composer.json 安裝最新擴(kuò)展包和依賴; composer update - 從 composer.json 安裝最新擴(kuò)展包和依賴;

composer update vendor/package - 從 composer.json 或者對(duì)應(yīng)包的配置,并更新到最新;

composer require new/package - 添加安裝 new/package, 可以指定版本,如: composer require new/package ~2.5.

我在引入和更新組件時(shí)都是使用 composer require ,這樣子做的原因是因?yàn)樵谏a(chǎn)環(huán)境中使用其他兩種方法來引入的話,會(huì)把其他組件也給更新了,導(dǎo)致不兼容的情況發(fā)生,具體看這篇文章:「正確的 Composer 擴(kuò)展包安裝方法」。

如果是 Composer 的「組件化」讓我采用了這個(gè)框架來重構(gòu),那你就大錯(cuò)特錯(cuò)了,真正讓我著迷的是 Laravel 的核心「Ioc容器」,它有效解決了對(duì)象依賴的問題,舉個(gè)栗子:

要實(shí)例化一個(gè)孩子對(duì)象出來,必須要實(shí)例化出爸爸對(duì)象和媽媽對(duì)象,用原本的對(duì)象依賴調(diào)用方式就是這樣的:

$father = new Father();
$mother = new Mother();
$child = new Child($father, $mother);

從編程角度來說,依賴關(guān)系越復(fù)雜,可變性就會(huì)越低,而且這么寫等于暴露了三個(gè)對(duì)象給用戶,是不可取的。

從現(xiàn)實(shí)角度來看,我只想知道你叫什么名字,你連你爸媽的信息都告訴我了,這......不合適吧。

上面的代碼用 Laravel 來寫會(huì)是這樣:

$child = app()->make(‘Child’);

接著 Ioc 就會(huì)幫你調(diào)用依賴于 Child 的所有類,并且賦予 Child 對(duì)象,整個(gè)過程只需要一句代碼,甚至能更簡(jiǎn)潔:

$child = app(‘Child’);

Ioc 的好用之處還有很多,基本上 Laravel 的基礎(chǔ)服務(wù)都是圍繞著 Ioc 來搭建的,Router、Middleware、Eloquent ORM等等等等,如果你想感受下 Ioc 的魔力,看源碼吧。

在 Ioc 的基礎(chǔ)上,各個(gè)子系統(tǒng)也有著自己的閃光點(diǎn),Router 的 RESTful 定義,Eloquent ORM 的預(yù)加載查詢優(yōu)化等等讓整個(gè)框架生態(tài)變得多樣化和易用。但也因?yàn)閼?yīng)有盡有使得框架的性能比其他高性能框架低了些,Laravel 為此給了幾個(gè)解決方案:

路由緩存;經(jīng)有關(guān)部門研究,路由緩存可有效加快訪問速度500ms以上。

源碼緩存;把源碼集合在一個(gè)類中,減少資源調(diào)用耗費(fèi)的時(shí)間。

數(shù)據(jù)查詢優(yōu)化;就是上面提到的 Eloquent ORM 的預(yù)加載查詢優(yōu)化。

這些都做了的話,性能不會(huì)差到哪里去,我認(rèn)為中小體量的網(wǎng)站的瓶頸是在數(shù)據(jù)IO,PHP性能還不用太糾結(jié),如果真達(dá)不到你的性能要求,請(qǐng)轉(zhuǎn)用 Lumen 或者其他框架。

有朋友說 PHP 框架最重要的東西是路由,我倒認(rèn)為最重要的是框架中異于其他框架且能解決痛點(diǎn)的東西,如 Laravel 的 Ioc。讓我們改變編程思維是很少框架能做到的,Laravel 能做到這點(diǎn),正所謂框架常有,好框架難求,如果你問我 Laravel 好不好,是不是最好,我只能用鄧小平爺爺?shù)拿愿嬖V你:

不管黑貓白貓,捉到老鼠就是好貓。

點(diǎn)此查看我的更多文章。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/21800.html

相關(guān)文章

  • Lumen 初體驗(yàn)(二)

    摘要:的現(xiàn)狀目前是版本,是基于開發(fā)。入口文件啟動(dòng)文件和配置文件框架的入口文件是。在路由中指定控制器類必須寫全命名空間,不然會(huì)提示找不到類。目前支持四種數(shù)據(jù)庫系統(tǒng)以及。使用時(shí)發(fā)生錯(cuò)誤,因?yàn)樵谖募?,的默認(rèn)驅(qū)動(dòng)是。 最近使用 Lumen 做了 2 個(gè)業(yè)余項(xiàng)目,特此記錄和分享一下。 Lumen 的介紹 在使用一項(xiàng)新的技術(shù)時(shí),了解其應(yīng)用場(chǎng)景是首要的事情。 Lumen 的口號(hào):為速度而生的 La...

    Cheriselalala 評(píng)論0 收藏0
  • Laravel+Apicloud+Vue開發(fā)混合式App系列】第0集

    摘要:關(guān)于作者程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事和前端開發(fā),使用和,端使用混合式開發(fā)。個(gè)人網(wǎng)站最近剛寫了一個(gè)手機(jī)在線播放的電影站開發(fā)混合式系列第集技術(shù)選型是一套簡(jiǎn)潔優(yōu)雅的開發(fā)框架。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://...

    Corwien 評(píng)論0 收藏0
  • Laravel+Apicloud+Vue開發(fā)混合式App系列】第0集

    摘要:關(guān)于作者程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事和前端開發(fā),使用和,端使用混合式開發(fā)。個(gè)人網(wǎng)站最近剛寫了一個(gè)手機(jī)在線播放的電影站開發(fā)混合式系列第集技術(shù)選型是一套簡(jiǎn)潔優(yōu)雅的開發(fā)框架。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://...

    adie 評(píng)論0 收藏0
  • [譯] 使用 PHPStorm 開發(fā) Laravel 應(yīng)用

    摘要:很多程序員使用創(chuàng)建他們的應(yīng)用程序。是一個(gè)免費(fèi)開源的應(yīng)用程序框架。是的模板語言,對(duì)藝術(shù)家友好,這個(gè)程序員的命令行工具可以在中工作使用插件和幫助器我們可以進(jìn)一步擴(kuò)展對(duì)應(yīng)用的支持。 很多PHP程序員使用 [laravel] 創(chuàng)建他們的應(yīng)用程序。[laravel] 是一個(gè)免費(fèi)開源的PHP web應(yīng)用程序框架。它基于多個(gè)Symfony 組件,提供了一個(gè)開發(fā)框架,包括authentication,...

    buildupchao 評(píng)論0 收藏0
  • Lumen 初體驗(yàn)

    摘要:介紹為速度而生的框架。是官方給出的例子,直接拷貝命名為。一般來說,我們應(yīng)該避免使用末尾帶斜杠的。因?yàn)樗绻也坏轿募?,就?huì)自動(dòng)在末尾加個(gè)斜杠,嘗試尋找目錄下的文件等等,具體是在中配置。方案修改修改的配置文件,將指向重啟。 介紹 Lumen:為速度而生的 Laravel 框架。 Lumen 是 Laravel 的作者(Taylor Otwell)的又一力作。簡(jiǎn)單、快速、優(yōu)雅的它的特點(diǎn)...

    Leck1e 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Miracle_lihb

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<