都说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部分,看一个例子,很简单只是从首页拿些数据:
<span class="x">public function index()</span>
<span class="x"> {</span>
<span class="x"> $categories = ['新手','实例','插件','进阶'];</span>
<span class="x"> $posts = Post::with('category')->whereHas('category', function($q) use ($categories) { $q->whereIn('name', $categories); })->orderBy('created_at', 'desc')->simplePaginate(7);</span>
<span class="x"> $tags = Tag::all();</span>
<span class="x"> </span>
<span class="x"> $most_read = Post::orderBy('clicks', 'desc')</span>
<span class="x"> ->with('category')</span>
<span class="x"> ->take(5)</span>
<span class="x"> ->get();</span>
<span class="x"> </span>
<span class="x"> $feature_ids = Settings::get('features');</span>
<span class="x"> foreach ($feature_ids as $key=>$val){</span>
<span class="x"> $feature_posts[$key]=Post::findOrFail($val);</span>
<span class="x"> }</span>
<span class="x"> return view('front.index', compact('posts','tags','most_read','feature_posts'));</span>
<span class="x"> }</span>
别的不说,先说route. 不知道你用的哪个版本,Laravel 4.*? 有没有试过group, before和after filter. Laravel 5? 试试Middleware? 有没有用到RESTful? 更不要说使用Route起来SEO有多么方便。Composer有多好用就更不用说了,易管理,易扩展,我都不知道Composer居然能被这样吐槽。 唉,我用了很多框架,到最后,我才深深地醒悟,直接用PHP的echo语句才是最优雅的。简单就是美!好多框架都是过度设计。 这是个让人忧伤的框架 我深深感觉到这框架对新手的恶意 对比Phalcon来看Laravel,没发现任何优雅,繁杂臃肿,性能低下,不适合高访问量的企业级应用。 为什么我觉得题主说的地方,我都觉得很人性,很容易理解呢。
维护起来也不得不说很好改。。。
难道不是一个星球的laravel。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

在laravel中,fill方法是一个给Eloquent实例赋值属性的方法,该方法可以理解为用于过滤前端传输过来的与模型中对应的多余字段;当调用该方法时,会先去检测当前Model的状态,根据fillable数组的设置,Model会处于不同的状态。

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

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

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!