我正在尝试开发良好的代码组织习惯,并在php中专门使用OOP,但我似乎无法绕过某些东西。
以下是我正在使用的内容的简要说明:
我的问题是关于作为表单或AJAX请求的操作的文件。例如'formAction.php'和'ajaxURL.php'。这些文件不是Classes,也不包含任何html或其他此类GUI。
我一直把它们放在'资源/动作'文件夹中,但我的直觉告诉我一些关于这不完全是OOP的事情。
如果我正在尝试完整的OOP,我对这些文件的使用是否不正确?如果是这样,我怎么能以不同的方式处理它。
以下是我项目中的实际文件作为具体示例:
//file: getBalance.php
<?php
/**
* This script gets the balance of an account from the server
*/
if (!isset($Database)) {
$Database = require_once "../clear_finance_pkg.php";
}
/** @var User $User */
$User = $Database->getUserByID("1");//TODO: user should be set dynamically
$User->setAccounts($Database->getAccountsByUser($User));
if (isset($arg1)) {
$accountID = $arg1;
foreach ($User->getAccounts() as $Account) {
if ($Account->getId() == $accountID) {
$RbcChequing = RbcAccount::accountToRbcAccount($Account, "Chequing");
echo '$' . Money::toDollars($RbcChequing->getBalance());
break;
}
}
} else throw new Exception('Account ID is not set. Could not get balance');
答案 0 :(得分:1)
如果您的代码是完整的OOP,很难说,但我认为它不是。看起来你正走在正确的轨道上,因为你正在使用类,对象和方法。这是OOP的基础。不再是大的if / else语句和许多没有意义的变量,而是没有代码重复的对象和方法。
我认为你的问题更多地与逻辑和观点的分离有关。首先。通常,可以为函数创建文件,但在大型应用程序中,您将忽略概述。你所知道的是将视图相关和逻辑相关的东西组合在一个文件中,但实际上并不是你想要的。理想情况是完全分离逻辑和视图,因此您可以基于相同的逻辑创建多个单独的视图。
我的建议是看看MVC模式。请查看this链接。它将帮助您对MVC模式有一个基本的了解。请注意,您不再需要为每个功能提供文件。而且你有一个逻辑和视图元素的分离,因为你可以在多个视图中使用相同的模型(虽然这可能不是最好的例子)。