启动user
时,我在/update/user.php
启动了一个班级update.php
。此类处理数据库上与用户相关的查询,例如编辑,删除,创建等。
我正在user
中创建一个名为/src/user.php
的新类,它将在数据库上执行与用户相关的查询,但只能检索它们(并输出)它们。例如检索用户ID,用户组,电子邮件等
我发现需要将它们命名为user
但显然在检索update.php
时会发生冲突。您可以为命名这两个不同的类提供哪些建议,即使它们是我的库中的单独区域但执行类似的操作?
使用PHP 4.
答案 0 :(得分:2)
如果他们都查询,但只有一次写,那么我会建议像。
UserWrite
UserRead
或
UserCreate
UserAccess
答案 1 :(得分:2)
提供整个命名结构的替代方案,而不仅仅是建议名称。 Zend Framework和其他库具有与文件在树中的位置对应的命名结构。半虚构的例子:
Class name Is in
-----------------------------------------------------------
Zend_Auth /Zend/Auth.php
Zend_Auth_Adapter /Zend/Auth/Adapter.php
Zend_Auth_Helper /Zend/Auth/Helper.php
Zend_Auth_Adapter_HTTP /Zend/Auth/Adapter/HTTP.php
所以下划线是目录分隔符,名称的最后一个元素是PHP文件的名称。
这样做的主要原因是它使autoloading非常容易,但它也是按任务排序库的好方法。此外,当您在代码中的某处看到某个类时,您总是可以告诉它在中的哪个文件,这是一个很好的补充。
在你当前的方法中,我看到的问题是“src”是一个非常不清楚的描述,该类实际上做了什么。也许一个更有说服力的名称(如“工具”或“查询”)将是有序的,或者可能是主用户类,应该只是命名为“用户”?
将上述示例应用于该结构可能会导致
Class name Is in
------------------------------------------------------------
MyAppname_User_Update /User/Update.php
MyAppname_User /User.php
哦,以及@Charles在评论中说的话。你绝对不应该为PHP 4开发。这是一个死的版本,是no longer supported.
答案 2 :(得分:0)
我理解你的问题,但你认为你真的想要创建2个不同的类来执行相同的操作吗?你可以在/src/user.php
创建它,显然可以在任何你想要的地方使用它。您应该以这样的方式在该类中创建方法,以便在这两个问题中使用它们。即检索信息和更新信息。
答案 3 :(得分:0)
在OOP中,您的update.php称为BaseDAO.php,user.php称为UserDAO.php(数据访问对象)。但既然你没有使用OOP,我想使用可以命名为BaseService.php和UserService.php
答案 4 :(得分:0)
我建议您创建一个类来创建,编辑,删除和检索与用户相关的记录。然后管理用户角色以限制对方法的访问,而不是为一个对象类创建两个单独的类。
与现实世界比较的解释。
假设我们有班级汽车。当具有Mechanical Role(或机械师)的用户使用汽车类时,他将能够访问repair(), openHood()
之类的方法,其中具有驾驶角色(或驱动程序)的用户将访问drive()
方法。 / p>
在这种情况下,创建CarMechanic
类和CarDriver
类也是非常不合适的。
我想我明白了。