繁体   English   中英

如何在 PHP 和 PSR-4 上管理烦人的命名空间和类名冗余

[英]How manage annoying Namespace and Class name redundancy on PHP and PSR-4

在我的很多 PHP 微库中,都有与项目名称匹配的类,它创建了一个奇怪的完全限定类名称,看看这个

<?php
namespace Javanile\MysqlImport;

class MysqlImport {
 ...
}

然后当我使用这个类时,我有烦人的双名重复

<?php

$importer = new \Javanile\MysqlImport\MysqlImport(...);

// OR (EVEN BAD)

use Javanile\MysqlImport\MysqlImport;
$importer = new MysqlImport(...);

根据 PSR-4,我们有:

  • Javanile :是供应商名称
  • MysqlImport : 是它修复项目名称的子包名称
  • MysqlImport :是库的主体类

请支持我处理完全限定类名上令人讨厌的项目和主体类名的双重重复。 太糟糕了,正确的做法是什么? (我不想为了避免它而想出随机的类名)

这没有错,但是如果您想要更干净的项目,您可以重新组织您的项目结构。 例如:

Javanile
|__Importers
   |__ Mysql.php <-- Mysql class with main logic
   |__ Mysql <-- Folder with special MySQL logic, used in Mysql.php
      |__ MysqlHelperThings.php
      |__ SomethingElseForMysql.php

使用此结构,您的use路径将类似于use Javanile\\Importers\\Mysql;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM