laravel框架引入并使用自定义类库或自定义php文件

一、引入php文件

php框架提供的“辅助函数”、“集合”以及各种封装的类和函数也都是相当的丰富。但是有时候,我们还是需要自己定制某些函数。
这里以helper.php函数库为例。

  • 在下面路径中新增helper.php,放置自己的常用的函数
    [项目]/app/helper.php
    
  • 引入方法
    composer.json配置中的autoload中加入以下的配置。
    新增files选项,放置自己需要引入的路径,比如我的路径app/helpers.php
    "autoload": {
      "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "files":[
            "app/helpers.php"
        ]
    },
    
  • 运行以下命令是配置生效
    composer dump-auto
    

至此,该PHP就已经引入成功了,如果里面封装了函数,你可以直接调用你想要的函数了。

二、如何引入第三方类库

加入我自己写好了一个类库,或者我用composer工具require一个基础类。我们可以使用下面的方式,引入我们的框架中。
这里我们erusev/parsedown为例。

  • 首先使用composer把erusev/parsedown安装到我们的框架中。
    composer require erusev/parsedown
    
  • 同样是修改composer.json配置中的autoload选项,这次因为我们是类库。所以我们需要在把我们类的完整路径填入classmap中。
  1. 因为laravel的类默认是安装在vendor中的,所以完整的路径是vendor/erusev/parsedown
  2. 其中parsedown是你的类所在的目录名就行了,它会自动发现并记录当前目录下的所有可用的类。
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories",
            "vendor/erusev/parsedown"
        ],
        "files":[
            "app/helpers.php"
        ]
    },
    
  • 同样,运行以下命令是配置生效
    composer dump-auto
    

同样的话,到这里,类库也引入成功了。
使用的时候,要看你类库内部是否有指定命名空间,如果有的话,就使用use +命令空间+类名 来使用你的类,否则就可以直接使用。
像我的这个类,没有指命令空间。我可以use Parsedown之后,然后使用new Parsedown()类,或者我可以直接使用new \Parsedown()这种方式。

三、composer执行dump-auto配置原理

files类型的生效文件在:/vendor/composer/autoload_files.php
如下是helper.php的文件引入

'b4e3f29b106af37a2bb239f73cdf68c7' => $baseDir . '/app/helpers.php',

classmap类库生效的文件在:/verdor/composer/autoload_classmap.php
如下是Parsedown.php类库引入

'Parsedown' => $vendorDir . '/erusev/parsedown/Parsedown.php',

猜你喜欢

转载自www.cnblogs.com/hxsen/p/12694562.html