hoythan
V2EX  ›  PHP

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

  •  
  •   hoythan · Jul 4, 2017 · 2699 views
    This topic created in 3260 days ago, the information mentioned may be changed or developed.

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

    10 replies    2017-07-11 14:29:48 +08:00
    jhdxr
        1
    jhdxr  
       Jul 4, 2017   ❤️ 1
    caniuse
        2
    caniuse  
       Jul 4, 2017
    你应该去学下 composer
    hoythan
        3
    hoythan  
    OP
       Jul 4, 2017
    @caniuse 哪里学求教导
    linoder
        4
    linoder  
       Jul 4, 2017
    @hoythan 百度 Satis 干什么的 在百度 如何写 composer 组件 如何写 composer 项目 什么是 psr4 主流存储 /日志 /缓存 接口规范 没别的 多百度 多写代码
    U7Q5tLAex2FI0o0g
        5
    U7Q5tLAex2FI0o0g  
       Jul 4, 2017
    自己的类也按 composer 的格式写呀
    gavinczhang
        6
    gavinczhang  
       Jul 4, 2017   ❤️ 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
       Jul 4, 2017
    @gavinczhang 那我不是要把自己的 class👟在 vendor 里面去吗
    mx1700
        8
    mx1700  
       Jul 4, 2017 via Android
    @hoythan 你楼上的文档里说的很清楚,你看过就不会这么问
    wwek
        9
    wwek  
       Jul 11, 2017
    @gavinczhang 正解
    在项目根目录下,找到 composer.json,打开后
    把你自己写的代码指定下加载方式
    例如代码已经按照 psr-4 规范写了

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

    ```
    wwek
        10
    wwek  
       Jul 11, 2017
    @hoythan 自己写的代码不需要放 vendor, 在 composer.json 上指明就可以了,位置随意
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5428 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 07:37 · PVG 15:37 · LAX 00:37 · JFK 03:37
    ♥ Do have faith in what you're doing.