dongxiong1935 2014-06-23 18:41 采纳率: 0%
浏览 40

PHP可以使用名称空间(或其他任何内容)来包含两个相同名称的类

I have a class named 'Users' in /v1/users.php and another class named 'users' in /v2/users.php (v1 is a legacy API to our database). I'm trying to write migration code using both APIs.

Is there a way I can use both of these classes in a migration class? I unfortunately can't declare the namespaces in the users.php files themselves, but am wondering if there's some way I can encapsulate the include itself in a namespace? For example, in migrations.php:

<?php
namespace v1 {
require_once("v1/users.php");
}
namespace v2 {
require_once("v2/users.php");
}

class migration
{
    public function migrateUser($v1UserId)
    {
        $v1Users = new v1\Users;
        $v2Users = new v2\users;
        $v2Users->addUser($v1Users->getUser($v1UserId));
    }
}

?>
  • 写回答

1条回答 默认 最新

  • duanmoen784988 2014-06-23 18:52
    关注

    Along with Rocket Hazmat's comment, I'm pretty sure you need a global/blank namespace for the other code as well. Once you use the bracketed namespace { } syntax in a file, all code must be in a namespace:

    namespace {
        class migration
        {
            public function migrateUser($v1UserId)
            {
                $v1Users = new \v1\Users;
                $v2Users = new \v2\users;
                $v2Users->addUser($v1Users->getUser($v1UserId));
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)