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

问题描述

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

import pandas as pd
import string

# test dataframe
df = pd.DataFrame({'cluster': range(1,11)})

# unique values from the cluster column
clusters = sorted(df.cluster.unique()) 

# create a dict to map
cluster_map = dict(zip(clusters,string.ascii_uppercase))

# create the cluster_name column
df['cluster_name'] = df.cluster.map(cluster_map)

# df
   cluster cluster_name
0        1            A
1        2            B
2        3            C
3        4            D
4        5            E
5        6            F
6        7            G
7        8            H
8        9            I
9       10            J

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

<?PHP
namespace Javanile\mysqlimport;

class mysqlimport {
 ...
}

根据PSR-4,我们有:

支持我在完整合格的类名上处理项目和主体类名的令人讨厌的重复。太糟糕了,正确的做法是什么? (我不想只是为了避免使用随机类名而已)

解决方法

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

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;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...