当前位置: 首页 > 知识库问答 >
问题:

Laravel 4助手和基本功能的最佳实践?

皇甫飞跃
2023-03-14

我试图了解在Laravel 4中放置全局函数的最佳位置。例如,日期格式化。我认为做立面不值得,因为立面太模块化了。我读过关于创建一个库文件夹并在那里存储类的文章,但对于一个简单的函数来说,这似乎也是很多。像这样的工具不应该在刀片模板中可用吗?

对于类似的内容,什么是最佳实践?如何使其可用于刀片模板?

共有3个答案

鲜于浩淼
2023-03-14

Laravel的helpers.php方法是将其添加到composer.json中的“文件”中(https://github.com/laravel/framework/blob/master/composer.json):

"autoload": {
    "classmap": [
        ...
    ],
    "files": [
        "app/libraries/helpers.php"
    ],
},

我所做的是创建小类(每个类有几个方法,每个方法一行,所有东西都从某物扩展而来,这是我的目标),

class ExtendedCarbon extends Carbon\Carbon {

    public function formatDDMMAAAA($date)
    {
        /// format and return
    }

}

将它们保存到应用程序/库中,并添加到composer.json:

"autoload": {
    "classmap": [
        ...
        "app/libraries",
        ...
    ],
},

处决

composer dump

然后在你需要的地方使用它们

$formatted = (new ExtendedCarbon)->formatDDMMAAAA($date);

观看有关重构的视频:http://www.youtube.com/watch?v=DC-PQ0ACS

顺便说一句,我敢肯定这只是一个例子,但您可能不需要助手来格式化日期,因为Laravel中的所有日期都是碳的实例(https://github.com/briannesbitt/Carbon)它有很多方法来格式化日期和时间。

傅毅然
2023-03-14

我的方法是在Laravel 4项目根目录下的/app目录中创建一个新文件夹。然后将此文件夹添加到/app/start/global.php文件的第一个数组中,如下所示:

<?php

ClassLoader::addDirectories(array(

app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/classes', // This line is the one I've added.

));

只要新的/app/class文件夹中的文件夹结构遵循名称空间约定。Laravel 4将自动加载此文件夹中的所有类/文件。这样就不需要深入任何作曲家文件或运行作曲家命令。

不确定这是否是最佳实践,但它确实有效。

如果您创建了一个名为/app/classes/Helpers/Helper.php的简单文件,如下所示:

<?php namespace Helpers;

class Helper {

    public static function helloWorld()
    {
        return 'Hello World';
    }
}

您只需调用Helpers\Helper::helloWorld()

您还可以在/app/config/app.php文件中为这个helper类别名。只需在别名数组的末尾添加如下内容:

'Helper'          => 'Helpers\Helper'

谷梁凌
2023-03-14

丑陋、懒惰和可怕的方式:在bootstrap/start.php的末尾,添加一个include('tools.php')并将函数放在新文件中。

干净的方法:创建一个库。这样,只有当你实际使用它时,它才会自动加载。

  • 应用程序的文件夹中创建文件夹
  • 创建库文件,在其中创建类,并向其中添加静态函数
  • 选项1:编辑start/global.phpapp_path()./libraries'添加到ClassLoader::addDirectories(数组)。
  • 选项2:编辑composer.json“应用程序/库”添加到自动加载数组中。运行composer dump autoload
  • 从视图中调用类和静态函数

关于您的选项,引用自global.php文件

除了使用Composer,还可以使用Laravel类加载器加载控制器和模型。这有助于将所有类保持在“全局”命名空间中,而无需编写器更新。

您可以组合这两个选项,其中Laravel类加载器将自动搜索注册目录中的类(选项1,更容易)和Composer将保留所有类的记录,但只有在您更新后(选项2,可能会提高性能)。

 类似资料:
  • 我有一些关于Firebase云功能最佳实践的问题,非常感谢您的任何见解和建议! 哪里是初始化管理SDK的最佳位置,因为你只能这样做一次,如果你在一个单独的文件中这样做,初始化你需要的服务(如Fi还原和函数)并导出它们,或者在根初始化管理SDK,index.ts? 如果您有与单个事件相关的多个任务,您应该触发多个云函数来处理同一事件的不同任务,还是为处理多个任务的事件触发一个云函数。例如,如果您有一

  • 问题内容: 我想创建辅助函数,以避免在Laravel 5的视图之间重复代码: view.blade.php 它们基本上是文本格式化功能。我在哪里以及如何使用这些功能创建文件? 问题答案: 在您的应用文件夹中创建一个文件,并使用composer加载它: 将其添加到文件后,运行以下命令: 如果您不喜欢将文件保留在目录中(因为它不是PSR-4命名空间的类文件),则可以执行网站的操作:将文件存储在boot

  • 本文将介绍 manifest.json 的一些基本配置,通过这些基本配置,PWA 站点可以支持添加至主屏幕功能。 自定义名称 自定义图标 设置启动网址 设置作用域 自定义名称 PWA在通过应用安装横幅引导用户安装 app,以及被添加到主屏幕时,需要显示应用名称以便用户将其与其他应用区分开来。对应的属性为: name: {string} 应用名称,用于安装横幅、启动画面显示 short_name:

  • 初始目录结构 通过 lavas init 初始化项目完成之后,我们应该能够看到如下的文件结构: lavas-project ├── assets/ ├── components/ ├── core/ ├── middlewares/ ├── node_modules/ ├── pages/ ├── static/ ├── store/ ├── lavas.config.js ├── server.

  • 本文向大家介绍手势滑动结束Activity基本功能的实现(一),包括了手势滑动结束Activity基本功能的实现(一)的使用技巧和注意事项,需要的朋友参考一下 喜欢听音乐的朋友可能都看过天天动听这款 app, 这款 app 有一个亮点就是在切换页面(Fragment)的时候可以通过手势滑动来结束当前页面,这里先说一下,我为什么会这么关心这个功能呢,因为前两天 PM说我们即将开始做的这款app 也要

  • Overview This article discusses performance and reliability best practices for Express applications deployed to production. This topic clearly falls into the “devops” world, spanning both traditional