我试图了解在Laravel 4中放置全局函数的最佳位置。例如,日期格式化。我认为做立面不值得,因为立面太模块化了。我读过关于创建一个库文件夹并在那里存储类的文章,但对于一个简单的函数来说,这似乎也是很多。像这样的工具不应该在刀片模板中可用吗?
对于类似的内容,什么是最佳实践?如何使其可用于刀片模板?
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)它有很多方法来格式化日期和时间。
我的方法是在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'
丑陋、懒惰和可怕的方式:在bootstrap/start.php
的末尾,添加一个include('tools.php')
并将函数放在新文件中。
干净的方法:创建一个库。这样,只有当你实际使用它时,它才会自动加载。
应用程序的文件夹中创建库
文件夹
- 创建库文件,在其中创建类,并向其中添加静态函数
- 选项1:编辑
start/global.php
将app_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