资讯专栏INFORMATION COLUMN

laravel 如何使用composer自动加载自己定义的文件夹

RdouTyping / 3112人阅读

摘要:原文地址一问题当我们下来一个框架,接着就开始我们表演,但是我们根据业务需求需要创建一些自定义的文件夹,那么我们该如何加载他们呢,如何避免这类错误二分三步来解决这个问题在中项目根目录下创建自己的文件夹例如我在项目根目录下创建了一个文件夹。

原文地址

一. 问题

当我们 clone下来一个laravel框架,接着就开始我们表演,但是我们根据业务需求需要创建一些自定义的文件夹,那么我们该如何加载他们呢,如何避免这类错误[SymfonyComponentDebugExceptionFatalThrowableError] Class "toolsalyduanxinapi\_demoSmsDemo" not found

二:分三步来解决这个问题

在laravel 中项目根目录下创建自己的文件夹,例如我在项目根目录下创建了一个tools文件夹。

在项目文件夹的根目录下找到composer.json文件,在autoload里添加psr-4节点

"psr-4": {
            "tools": "tools/"
        }

接着执行

composer dump-autoload -o 

至此我们就加载成功啦

三. 解释一下 composer dump-autoload 这条命令

下面是composer官方文档中关于dump-autoload命令的解释:

dump-autoload

If you need to update the autoloader(类加载器) because of new classes in a classmap package for example, you can use "dump-autoload" to do that without having to go through an install or update.
Additionally, it can dump an optimized(优化) autoloader that converts(转化) PSR-0/4 packages into classmap ones for performance(性能) reasons. In large applications with many classes, the autoloader can take up a substantial portion of every request"s time. Using classmaps for everything is less convenient in development, but using this option you can still use PSR-0/4 for convenience and classmaps for performance.
Options:
--no-scripts: Skips the execution of all scripts defined in composer.json file.
--optimize (-o): Convert PSR-0/4 autoloading to classmap to get a faster autoloader. This is recommended especially for production, but can take a bit of time to run so it is currently not done by default.
--classmap-authoritative (-a): Autoload classes from the classmap only. Implicitly enables --optimize.
--apcu: Use APCu to cache found/not-found classes.
--no-dev: Disables autoload-dev rules.
其中官方推荐的参数是 -o,即 composer dump-autoload -o
这个命令可以将PSR-0/4自动加载成classmap来获取一个更快速的类加载器,推荐生产环境使用,但是,可能需要一点时间来运行,因此目前不是默认

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25711.html

相关文章

  • PHP包管理工具--Composer自动加载

    摘要:接触过的同学都知道使用作为项目的包管理工具但是并不是独有的是的包管理工具这两者的关系就像于于一样但是发现真正项目中使用还是比较少的所以这里这里写一遍文章介绍的使用帮助那些对于还是有点模糊的同学此文跟没有任何联系安装的方式就不讲了具体安装方式 接触过Laravel的同学都知道,Laravel使用Composer作为项目的包管理工具.但是Composer并不是Laravel独有的,Comp...

    xiaoqibTn 评论0 收藏0
  • 基于ComposerLaravel扩展包开发工作流

    使用场景 在引用第三方包的时候,对第三方包有改动需求,需要将代码放在自己的仓库;并且自己的其他项目也有需求引用自定义的第三方包;甚至自己会发布修改后的第三方包; 读完本文你讲获得: Git Submodule的基本使用 从本地加载第三方包 从自定义仓库地址获取扩展包 快速创建第三方包 本文是在我自己想要创建一个基础第三方包的时候记录下的操作步骤 1、利用git submoudle在已有项目中使...

    Faremax 评论0 收藏0
  • ComposerAutoload源码实现——启动与初始化

    摘要:任务是加载类的初始化顶级命名空间与文件路径映射初始化和注册。在实际情况下可能会出现这样的情况。值得注意的是这个函数返回的是一个匿名函数,为什么呢原因就是类中的等等都是的。。。关于匿名函数的绑定功能。 前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn 上一篇文章,我们讨论了 PHP 的自动加载原理、PHP 的命名空间、PHP 的 PSR0 与 PSR4 标准,有...

    MarvinZhang 评论0 收藏0
  • LaravelLaravel 框架关键技术解析·读书笔记(二)

    摘要:框架关键技术解析读书笔记二第五章框架应用程序根目录版本默认的框架应用程序是符合规范的,所以相应的目录结构也是基本固定的,不同的目录加载了功能文件,如果添加了新的目录,需要在文件中添加规范的自动加载部分并执行命令。 Laravel 框架关键技术解析·读书笔记(二) 第五章 框架应用程序根目录(5.1版本) 默认的Laravel框架应用程序是符合PSR规范的,所以相应的目录结构也是基本...

    TIGERB 评论0 收藏0
  • laravel 使用 composer 加载定义函数和自定义

    摘要:导语在开发中,会封装一些自定义函数以及自定义的类,本篇文章讲一下怎么使用实现自动加载。自定义函数实现自动加载,共有三步。自定义类自定义类同上,也是三步,一些小改动。参考资料自定义函数和自定义类。 导语 在开发中,会封装一些自定义函数以及自定义的类,本篇文章讲一下怎么使用 composer 实现自动加载。 自定义函数 实现自动加载,共有三步。 创建文件。在 app 目录下创建 Help...

    Jrain 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<