dougu6815 2015-02-10 22:09
浏览 78
已采纳

使用Composer的自动加载器和个人代码

I'm building a small project using Composer, but I now have to use some custom code, in the parent folder of vendor folder.

Similar file structure: libraries > companyname > namespace > classfile.php

Is it possible to effectively use the composer autoloader? It seems that it is, but I'm having trouble wrapping my head around it.

Would it be easier to use a second autoloader script?

  • 写回答

1条回答 默认 最新

  • douraoyw194498 2015-02-10 22:18
    关注

    We're loading in our own code via composer.

    Our code is installed in the lib folder under our company name. Our composer file looks like this.

    {
        "config": {
            "vendor-dir": "lib"
        },
        "require": {
            "twig/twig": "v1.15.1",
            "symfony/symfony": "2.5.4"
        },
        "autoload": {
            "psr-4": {
                "CompanyName\\": "lib/companyName/src"
            }
        }
    }
    

    the autoload psr4 section is the important part. CompanyName will resolve files located in lib/companyName/src.

    Inside lib/companyName/src, you'd have a file called ThingDoer.php

    <?php
    
    namespace CompanyName;
    
    class ThingDoer {
        public static function doThings() {}
    }
    

    And now from anywhere in your codebase, you can call CompanyName\ThingDoer::doThings();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 sim800c模块 at指令及平台
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题