Table des matières
回复内容:
Maison développement back-end tutoriel php 请问laravel优雅在何处?

请问laravel优雅在何处?

Jun 06, 2016 pm 04:43 PM
composer laravel

都说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>
Copier après la connexion
别的不说,先说route. 不知道你用的哪个版本,Laravel 4.*? 有没有试过group, before和after filter. Laravel 5? 试试Middleware? 有没有用到RESTful? 更不要说使用Route起来SEO有多么方便。

Composer有多好用就更不用说了,易管理,易扩展,我都不知道Composer居然能被这样吐槽。 唉,我用了很多框架,到最后,我才深深地醒悟,直接用PHP的echo语句才是最优雅的。简单就是美!好多框架都是过度设计。 这是个让人忧伤的框架 我深深感觉到这框架对新手的恶意 对比Phalcon来看Laravel,没发现任何优雅,繁杂臃肿,性能低下,不适合高访问量的企业级应用。 为什么我觉得题主说的地方,我都觉得很人性,很容易理解呢。

维护起来也不得不说很好改。。。

难道不是一个星球的laravel。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Jun 03, 2024 pm 12:37 PM

Composer fournit des fonctionnalités avancées, notamment : 1. Alias : définissez des noms pratiques pour les packages pour référence répétée ; 2. Scripts : exécutez des commandes personnalisées lors de l'installation/mise à jour de packages, utilisées pour créer des tables de base de données ou compiler des ressources ; 3. Résolution de conflits : utilisez des règles de priorité ; , les contraintes de satisfaction et les alias de package résolvent les différentes exigences de plusieurs packages pour la même version de dépendance afin d'éviter les conflits d'installation.

Laravel - Commandes artisanales Laravel - Commandes artisanales Aug 27, 2024 am 10:51 AM

Laravel - Artisan Commands - Laravel 5.7 est livré avec une nouvelle façon de traiter et de tester de nouvelles commandes. Il inclut une nouvelle fonctionnalité de test des commandes artisanales et la démonstration est mentionnée ci-dessous ?

Comparaison des dernières versions de Laravel et CodeIgniter Comparaison des dernières versions de Laravel et CodeIgniter Jun 05, 2024 pm 05:29 PM

Les dernières versions de Laravel 9 et CodeIgniter 4 fournissent des fonctionnalités et des améliorations mises à jour. Laravel9 adopte l'architecture MVC et fournit des fonctions telles que la migration de bases de données, l'authentification et le moteur de modèles. CodeIgniter4 utilise l'architecture HMVC pour fournir le routage, l'ORM et la mise en cache. En termes de performances, le modèle de conception basé sur le fournisseur de services de Laravel9 et le framework léger de CodeIgniter4 lui confèrent d'excellentes performances. Dans les applications pratiques, Laravel9 convient aux projets complexes qui nécessitent de la flexibilité et des fonctions puissantes, tandis que CodeIgniter4 convient au développement rapide et aux petites applications.

Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ? Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ? Jun 01, 2024 pm 01:34 PM

Comparez les capacités de traitement des données de Laravel et CodeIgniter : ORM : Laravel utilise EloquentORM, qui fournit un mappage relationnel classe-objet, tandis que CodeIgniter utilise ActiveRecord pour représenter le modèle de base de données en tant que sous-classe de classes PHP. Générateur de requêtes : Laravel dispose d'une API de requêtes chaînées flexible, tandis que le générateur de requêtes de CodeIgniter est plus simple et basé sur des tableaux. Validation des données : Laravel fournit une classe Validator qui prend en charge les règles de validation personnalisées, tandis que CodeIgniter a moins de fonctions de validation intégrées et nécessite un codage manuel des règles personnalisées. Cas pratique : l'exemple d'enregistrement d'utilisateur montre Lar

Comment Composer gère-t-il le fichier composer.lock ? Comment Composer gère-t-il le fichier composer.lock ? Jun 03, 2024 pm 04:40 PM

Composer gère les dépendances à l'aide du fichier composer.lock, qui enregistre toutes les dépendances installées et leurs versions exactes, ce qui permet de : Garantir la cohérence et éviter les conflits de versions. Améliorez les performances sans avoir à rechercher des packages à plusieurs reprises. Suivez les modifications en enregistrant les versions de dépendances installées après chaque commande d'installation.

Laravel vs CodeIgniter : quel framework est le meilleur pour les grands projets ? Laravel vs CodeIgniter : quel framework est le meilleur pour les grands projets ? Jun 04, 2024 am 09:09 AM

Lors du choix d'un framework pour de grands projets, Laravel et CodeIgniter ont chacun leurs propres avantages. Laravel est conçu pour les applications d'entreprise, offrant une conception modulaire, une injection de dépendances et un ensemble de fonctionnalités puissantes. CodeIgniter est un framework léger plus adapté aux projets de petite et moyenne taille, mettant l'accent sur la rapidité et la facilité d'utilisation. Pour les grands projets avec des exigences complexes et un grand nombre d'utilisateurs, la puissance et l'évolutivité de Laravel sont plus adaptées. Pour les projets simples ou les situations avec des ressources limitées, les capacités de développement légères et rapides de CodeIgniter sont plus idéales.

Quel est le meilleur moteur de template, Laravel ou CodeIgniter ? Quel est le meilleur moteur de template, Laravel ou CodeIgniter ? Jun 03, 2024 am 11:30 AM

En comparant le moteur de modèles Blade de Laravel et le moteur de modèles Twig de CodeIgniter, choisissez en fonction des besoins du projet et de vos préférences personnelles : Blade est basé sur la syntaxe MVC, qui encourage une bonne organisation du code et un héritage de modèles. Twig est une bibliothèque tierce qui offre une syntaxe flexible, des filtres puissants, une prise en charge étendue et un bac à sable de sécurité.

Lequel est le plus adapté aux débutants, Laravel ou CodeIgniter ? Lequel est le plus adapté aux débutants, Laravel ou CodeIgniter ? Jun 05, 2024 pm 07:50 PM

Pour les débutants, CodeIgniter a une courbe d'apprentissage plus douce et moins de fonctionnalités, mais couvre les besoins de base. Laravel offre un ensemble de fonctionnalités plus large mais a une courbe d'apprentissage légèrement plus raide. En termes de performances, Laravel et CodeIgniter fonctionnent bien. Laravel dispose d'une documentation plus complète et d'un support communautaire actif, tandis que CodeIgniter est plus simple, léger et possède de solides fonctionnalités de sécurité. Dans le cas pratique de la création d'une application de blog, EloquentORM de Laravel simplifie la manipulation des données, tandis que CodeIgniter nécessite une configuration plus manuelle.

See all articles