V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hoythan
V2EX  ›  PHP

PHP 使用了 composer 的自加载类后,怎么写自己的类比较合适?

  •  
  •   hoythan · 2017-07-04 18:34:27 +08:00 · 2242 次点击
    这是一个创建于 2700 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PHP 项目使用了 composer,自己写的类就不能用 spl_autoload_register 来自动加载了,那应该怎么办呀? 各位乡亲父老哥哥姐姐有没有什么文档可以给我看看,嘤嘤嘤嗡嗡嗡。

    10 条回复    2017-07-11 14:29:48 +08:00
    jhdxr
        1
    jhdxr  
       2017-07-04 18:37:12 +08:00   ❤️ 1
    caniuse
        2
    caniuse  
       2017-07-04 18:57:19 +08:00
    你应该去学下 composer
    hoythan
        3
    hoythan  
    OP
       2017-07-04 20:15:26 +08:00
    @caniuse 哪里学求教导
    linoder
        4
    linoder  
       2017-07-04 20:17:10 +08:00
    @hoythan 百度 Satis 干什么的 在百度 如何写 composer 组件 如何写 composer 项目 什么是 psr4 主流存储 /日志 /缓存 接口规范 没别的 多百度 多写代码
    littleylv
        5
    littleylv  
       2017-07-04 20:28:26 +08:00
    自己的类也按 composer 的格式写呀
    gavinczhang
        6
    gavinczhang  
       2017-07-04 20:35:55 +08:00   ❤️ 1
    http://docs.phpcomposer.com/01-basic-usage.html#Autoloading
    你可以在 composer.json 里写自己的 autoload 规则呀

    比如
    "autoload" : {
    "psr-4" : {
    "UserProfile\\": "src/"
    }
    }
    然后 composer update 一下,生成的 vendor/autoload.php 里,会默认把 namespace 为 UserProfile 的类库去 src/目录下按 psr-4 规则查找的。。

    更详细的参考文档: http://docs.phpcomposer.com/04-schema.html#autoload
    还支持 classmap 等多种自加载规则
    hoythan
        7
    hoythan  
    OP
       2017-07-04 21:12:44 +08:00
    @gavinczhang 那我不是要把自己的 class👟在 vendor 里面去吗
    mx1700
        8
    mx1700  
       2017-07-04 21:15:13 +08:00 via Android
    @hoythan 你楼上的文档里说的很清楚,你看过就不会这么问
    wwek
        9
    wwek  
       2017-07-11 14:27:59 +08:00
    @gavinczhang 正解
    在项目根目录下,找到 composer.json,打开后
    把你自己写的代码指定下加载方式
    例如代码已经按照 psr-4 规范写了

    ```
    "autoload": {
    "psr-4": {
    "自己的命名空间\\": "自己的代码目录 src/",
    "Vendor\\Namespace\\": ""
    }
    }

    ```
    wwek
        10
    wwek  
       2017-07-11 14:29:48 +08:00
    @hoythan 自己写的代码不需要放 vendor, 在 composer.json 上指明就可以了,位置随意
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.