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

PHP 的项目现在支持 composer 是必须的吗?

  •  
  •   Felldeadbird · 2016-02-09 00:09:40 +08:00 · 7263 次点击
    这是一个创建于 3215 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近经常在 GITHUB 找开源库,懒得自己写了。然后我发现基本都需要依赖 composer 来加载的。
    不然我的项目是无法加载他们的库了。不知不觉自己也和社会脱节了...
    composer一直没用,之前为了研究laravel源码就安装了一次,后面基本没怎么用了。感觉有点麻烦,而且没有以前写PHP那么自由,我直接加载,或者命名空间引入就行了。
    25 条回复    2016-02-27 14:20:20 +08:00
    yangqi
        1
    yangqi  
       2016-02-09 00:13:56 +08:00   ❤️ 1
    人家只是提供了 composer 的支持,你可以不用的,自己手动加载就行了

    不过 composer 实在是太方便了,所以才会普及的很快
    Felldeadbird
        2
    Felldeadbird  
    OP
       2016-02-09 00:24:16 +08:00
    @yangqi 刚才尝试修改一个库。结果他的命名空间 太多 USE 了,改得我手软,最后放弃修改了。自己写一个好了。就是异常把控一般般。
    yangqi
        3
    yangqi  
       2016-02-09 00:27:22 +08:00   ❤️ 1
    @Felldeadbird 命名空间这个和 composer 没什么关系吧,你是说他引用了很多其他的库?
    jhdxr
        4
    jhdxr  
       2016-02-09 00:28:20 +08:00   ❤️ 3
    不是必须。那些依赖的库,你也可以自己去实现 autoload (不然很远可能就得改别人的代码了),并且去把那些库的依赖也都下下来并引入。

    换言之,只要你把 composer 的部分功能再自己实现一遍就行。。。

    然而这不是蛋疼么
    jhdxr
        5
    jhdxr  
       2016-02-09 00:29:48 +08:00   ❤️ 1
    @yangqi 目测 LZ 不会 autoload ?所以在拼命+include/require ?。。。。。。
    yangqi
        6
    yangqi  
       2016-02-09 00:30:59 +08:00   ❤️ 1
    @jhdxr 那确实脱节太多了,需要刷新一下知识了
    cxbig
        7
    cxbig  
       2016-02-09 00:35:04 +08:00   ❤️ 1
    不是强制,项目不断更新的话,有它来管理组件会比较好。
    lamCJ
        8
    lamCJ  
       2016-02-09 10:19:14 +08:00 via iPhone   ❤️ 1
    只是 php 一种下载库文件的比较方便的方式 帮你解决掉各种依赖 当然也也可以手动下载引入 不过依赖没彻底解决的话就有可能会找不到类

    不过好像没有 npm gem 那么「必须」吧
    Felldeadbird
        9
    Felldeadbird  
    OP
       2016-02-09 10:54:40 +08:00 via iPhone
    @jhdxr 我自己写了基于命名空间目录加载的方式,直接引用那些不是基于目录命名空间的,会报错。
    Felldeadbird
        10
    Felldeadbird  
    OP
       2016-02-09 10:55:46 +08:00 via iPhone
    @lamCJ 嗯。目前遇到就是这个情况了。
    @yangqi 我也觉得脱节了。
    phithon
        11
    phithon  
       2016-02-09 13:29:02 +08:00   ❤️ 1
    感觉用 composer 才更自由,想搭积木一样,选择自己喜欢的包安装,十分方便~
    建议楼主用 composer
    zonghua
        12
    zonghua  
       2016-02-09 14:01:51 +08:00   ❤️ 1
    maven 或者 gradle
    zhengkai
        13
    zhengkai  
       2016-02-09 14:32:07 +08:00
    都 2016 年了别问这种问题成么……
    Felldeadbird
        14
    Felldeadbird  
    OP
       2016-02-09 15:17:14 +08:00 via iPhone
    @zhengkai 你不喜欢你可以不回答,为了凸现自己牛逼?要不拿拿你的成就?
    Felldeadbird
        15
    Felldeadbird  
    OP
       2016-02-09 15:19:08 +08:00 via iPhone
    @phithon 之前看过用 composer 搭建框架的文章,确认很轻松。之前自己写框架,路由,控制器,模型,视图都自己弄。累的要命。
    pein
        16
    pein  
       2016-02-09 16:20:59 +08:00   ❤️ 1
    依赖少的话可以自己写 autoload ,依赖多的话还是用 composer 吧,学一学也不难,很简单的,而且已经是现在的趋势了。
    iyaozhen
        17
    iyaozhen  
       2016-02-09 17:53:37 +08:00 via Android   ❤️ 1
    composer 真的很方便,代码写多了才发现有一个规范的东西很重要。利用 composer 可以很方便的协作开发和部署以及 CI
    jellybool
        18
    jellybool  
       2016-02-09 19:17:59 +08:00   ❤️ 1
    composer 让开发者生活如此美好。反正我已经离不开,而且这也是 PHP 社区的标配趋势了吧
    movtoy
        19
    movtoy  
       2016-02-09 21:40:09 +08:00
    @Felldeadbird 看的什么文章,分享下,谢谢
    Felldeadbird
        20
    Felldeadbird  
    OP
       2016-02-09 23:24:31 +08:00 via iPhone
    @movtoy 我只记得内容是说 用 composer 通过加载不同的组件搭建一个框架。好像文章标题是 conposer 搭建框架 。你试下谷歌搜索。应该可以找到的。
    picasso250
        21
    picasso250  
       2016-02-10 12:01:59 +08:00
    wizardforcel
        22
    wizardforcel  
       2016-02-12 09:39:30 +08:00
    其实 __autoload() 也没什么大不了的,反正也可以自己写。

    用 Composer 也不一定要用__autoload()嘛,你可以手动 require 所需的包,把路径写对就行,比如`require("src/models/SomeClass.php");`。(但是不用__autoload()的都是异端,该烧。)

    Composer 最大好处就是帮忙自动依赖的包,你发布的时候不用带着一大堆依赖包,别人用的时候也不用到处去找了,直接一个命令
    curiousjude
        23
    curiousjude  
       2016-02-12 11:03:42 +08:00
    用 Composer 是一种趋势吧,毕竟把 autoload 的之类的自动处理了,不用你再操心。

    但当然不是必须的,对于 autoload ,一些库是有额外支持的,比如 Facebook 的 SDK ,是自带 autoload.php 的。
    Outshine
        24
    Outshine  
       2016-02-16 14:26:36 +08:00
    是标配而已,现代化的框架还有哪个没用 composer 的?
    刚开始接触我也觉得麻烦,结果越用越安逸。。。
    Clarencep
        25
    Clarencep  
       2016-02-27 14:20:20 +08:00
    @picasso250 在国内使用 composer 确实好蛋疼,不过现在大多时候可以使用 http://packagist.phpcomposer.com 这个镜像。最近这个镜像还算比较稳定。

    顺便,安利个小工具用来安装离线包的: https://github.com/Clarence-pan/fake-composer
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:46 · PVG 22:46 · LAX 06:46 · JFK 09:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.