都說laravel優雅,通過這幾天的使用我發現了無線蛋疼,充滿了反人類,不人性,難道程式員就就不能有使用者體驗嗎,每加一個控制器就加一次路由。就先談談路由吧,其他的先不談,他的優雅在哪裡請大牛指點。
請舉例說一下laravel的強大,不要總是說,laravel多牛,composer多好,具體好在哪裡。比如從一個項目的角度出發,在具體實現某個功能,都用到了哪些功能,這些寫法的好處,以及後期維護方面。
回複內容:
看文檔就知道了,符合人類思維的寫碼方式。我用它寫的項目,後來公司的IOS自己在改代碼。他不會PHP,當然改動不大。
這裡面其實還會出現一個問題:對php不熟悉的看它文檔的時候看不懂,然後就說它不好,所以對於新手來講,它的文檔不夠傻瓜化,不像國內架構一樣傻瓜的教你一步步怎麼寫。哈哈哈哈哈。。。
我就說說,你所謂的反人類的route機制。。
我不知道除了手動的方式來mapping路徑和行為的方式以外,還有什麼辦法可以更加的優雅。
按你的意思是,最理想的狀態是,加一個controller定義一個action就自動mapping到route裡面去。是啊,這個對於寫單純CRUD是省力啊,但是,要知道這種偷懶不叫 優雅。你會說,架構就是用來節省工作量的呀,偷懶有什麼錯呢?那你有錯了,架構是用來讓項目更加優雅的,而不是偷懶的。
那我再說說route都是自己手動設定的優雅所在吧。
1、你完全可以自己寫一套自動的controller和route,mapping的小模組,是的,你可以自己去寫,因為route檔案就是一個php的指令檔,你裡面可以調用任何你想要的東西。然後,你希望偷懶的事情,很輕鬆的自己解決了。
2、callback,合理的利用好callback特性,能發揮出無限的可能。
3、routes.php檔案在合適的管理下,就是一個牛逼的研究代碼的入口。你能很容易找到對應URL的controller或者是callback。乾乾淨淨一目瞭然,這個就叫優雅。
說完route再說說整體,底層用的都是symfony2的那些東西,什麼東西要用的composer配置一下,不要用的又沒必要去用它。那麼優雅的地方就來了,ORM模組我覺得用的彆扭,那我酒不用了唄。。。Http用的彆扭,那也就不用了唄。。。都自己寫唄。。這個就是優雅,低耦合。優秀的架構就是要這種,隨心所欲的感覺。
然後吐槽一下,某些不優雅的架構。。。。
$_C 還有 C()
其他的我就不多說了。。借鑒和使用了比較先進的工具和思想市面上這麼多架構,都很有特點。就剩“優雅”沒人用了。謝邀,Laravel 理念中 強調的更多的是 Artisan,就是工匠,工匠的craftmanship那肯定是優雅,精美的。所以所謂優雅,指的是代碼的整潔,易讀性和易於管理性;
首先來講易讀性,如果你熟悉英語的話,你會漸漸的知道Taylor是一個語文水平很高的人,Laravel這次詞本身聽上去就是一個很性感的名字。
所謂易讀性,就是你光憑代碼就可以知道意思,而不用讀注釋,代碼精簡複用度非常高;
代碼混亂很容易發生在controller部分,看一個例子,很簡單只是從首頁拿些資料:
public function index(){ $categories = ['新手','執行個體','外掛程式','進階']; $posts = Post::with('category')->whereHas('category', function($q) use ($categories) { $q->whereIn('name', $categories); })->orderBy('created_at', 'desc')->simplePaginate(7); $tags = Tag::all(); $most_read = Post::orderBy('clicks', 'desc') ->with('category') ->take(5) ->get(); $feature_ids = Settings::get('features'); foreach ($feature_ids as $key=>$val){ $feature_posts[$key]=Post::findOrFail($val); } return view('front.index', compact('posts','tags','most_read','feature_posts')); }
別的不說,先說route. 不知道你用的哪個版本,Laravel 4.*? 有沒有試過group, before和after filter. Laravel 5? 試試Middleware? 有沒有用到RESTful? 更不要說使用Route起來SEO有多麼方便。
Composer有多好用就更不用說了,易管理,易擴充,我都不知道Composer居然能被這樣吐槽。唉,我用了很多架構,到最後,我才深深地醒悟,直接用PHP的echo語句才是最優雅的。簡單就是美!好多架構都是過度設計。這是個讓人憂傷的架構 我深深感覺到這架構對新手的惡意對比Phalcon來看Laravel,沒發現任何優雅,繁雜臃腫,效能低下,不適合高訪問量的企業級應用。為什麼我覺得題主說的地方,我都覺得很人性,很容易理解呢。
維護起來也不得不說很好改。。。
難道不是一個星球的laravel。