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

PHP 怎样全局引入名称空间

  •  
  •   cc959798 · 255 天前 · 1264 次点击
    这是一个创建于 255 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有个类 Obj,每个 PHP 文件我都需要 use xxxx\xxx\Obj,怎样在项目的入口文件引入然后不需要在其他文件里再引入了

    17 回复  |  直到 2018-06-13 18:05:10 +08:00
        1
    zilan   255 天前
    我觉得可以考虑在入口之类的文件做,但这样的结果可能造成代码不干净,或者造成不必要的加载
    但换个角度来,如果每个项目都需要这个类,是不是可以回头反思这个类的设计是不是有问题。
    或者分析能否以其他的方式如 trait 来实现
        2
    NEETLEE   255 天前
    在项目根目录的 index.php 引入就可以了
        3
    wangysong   255 天前
    你不需要全局引入命名空间啊。

    你只要把这个类做成不再命名空间中就可以了。

    require_once("Class.php");

    以后就可以直接使用了呀。


    不准守 psr 规则就好了。.................................
        4
    yongjing   255 天前
    嫌麻烦之前不如先思考一下为什么这样设计?
    好不容易出个 psr 规范,能遵守尽量遵守
        5
    caola   255 天前
    如果是 laravel 直接在 Controller.php 里 use 后,
    其他继承 Controller 的,都可以通过 $this 来使用
        6
    OMGZui   255 天前
    兄 dei,你的需求很有趣啊
        7
    holystrike   255 天前
    命名空间的一个作用是为了防止名称冲突
    如果自己规避命名冲突可以用别名
    class_alias
        8
    torbrowserbridge   255 天前
    @caola use 和 $this 有啥关系?
        9
    torbrowserbridge   255 天前
    @holystrike 使用别名一样要在每个文件中 use
        10
    holystrike   255 天前
    class_alias('xxxx\xxx\Obj', 'Obj')
        11
    holystrike   255 天前
    @torbrowserbridge 至少没那么长
        12
    holystrike   255 天前
    @torbrowserbridge 用\就可以了
        13
    mcfog   255 天前 via Android
    你需要一个合格的 ide
        14
    caola   255 天前
    @torbrowserbridge $this 就不用重复写一大长串路径。。。
        15
    czlvjin   255 天前
    参考 Laravel 的 helpers,在项目 composer.json 配置一个 files 类型的 autoload
    https://getcomposer.org/doc/04-schema.md#files
        16
    johnnie502   255 天前
    PHP 又来招黑了,从 JAVA 转过来写 PHP 一段时间,看到不带 namespace 的文件比如 laravel migration 就觉得浑身难受
        17
    han8gui   254 天前
    1. 建议:放在一个基类,继承一个基类,比如 MY_Controller.php
    2. 感觉你的方案可能就有问题
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1618 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 00:58 · PVG 08:58 · LAX 16:58 · JFK 19:58
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1