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

2017-07-04 18:34:27 +08:00
 hoythan

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

2218 次点击
所在节点    PHP
10 条回复
jhdxr
2017-07-04 18:37:12 +08:00
caniuse
2017-07-04 18:57:19 +08:00
你应该去学下 composer
hoythan
2017-07-04 20:15:26 +08:00
@caniuse 哪里学求教导
linoder
2017-07-04 20:17:10 +08:00
@hoythan 百度 Satis 干什么的 在百度 如何写 composer 组件 如何写 composer 项目 什么是 psr4 主流存储 /日志 /缓存 接口规范 没别的 多百度 多写代码
littleylv
2017-07-04 20:28:26 +08:00
自己的类也按 composer 的格式写呀
gavinczhang
2017-07-04 20:35:55 +08:00
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
2017-07-04 21:12:44 +08:00
@gavinczhang 那我不是要把自己的 class👟在 vendor 里面去吗
mx1700
2017-07-04 21:15:13 +08:00
@hoythan 你楼上的文档里说的很清楚,你看过就不会这么问
wwek
2017-07-11 14:27:59 +08:00
@gavinczhang 正解
在项目根目录下,找到 composer.json,打开后
把你自己写的代码指定下加载方式
例如代码已经按照 psr-4 规范写了

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

```
wwek
2017-07-11 14:29:48 +08:00
@hoythan 自己写的代码不需要放 vendor, 在 composer.json 上指明就可以了,位置随意

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/373019

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX