我真的在寻找一些关于实现目标的最佳方法的建议。我在没有任何库的纯PHP工作。我有一个简单的Config类
<?php
class Config
{
//define my constants
}
此类位于Web根目录之外的文件夹中。在我的Web根目录中,我有一个简单的PHP文件,它将充当脚本,不需要它成为一个类。我不会一点一点地展示,而是展示我的思维过程
<?php
require __DIR__ . "/../config/Config.php";
$config = new Config();
execute($config);
function execute($config) {
$textFile = $this->obtainTextFile($config);
$transferFile = $this->transferFile($config, $textFile);
}
function obtainTextFile($config) {
//connect to database and write results to text file
return $textFile; //path to the generated file
}
function transferFile($config, $textFile) {
//return whether the file was successfully SFTP
}
首先,我需要配置文件。然后我创建一个$config
对象,我将其传递给execute函数。 execute函数本质上充当入口点。现在这个函数有了对象,它需要将它传递给另外几个需要该对象的函数。对我来说这看起来有点奇怪,因为如果它是一个类,我可以只引用类变量。
这是不使用课程时正常的做事方式吗?有没有更好的方法来做到这一点,我不必继续传递对象,而不使用类?
任何建议表示赞赏
答案 0 :(得分:1)
怎么样,创建两个类。一个是Config,另一个是完成所有魔术的应用程序。 然后你有一个使用这两个类的脚本文件。
申请类
class Application {
/** @var Config **/
private $config;
public function __construct(Config $config) {
$this->config = $config;
}
public function execute() {
$this->transferFile($this->obtainTextFile());
}
private function obtainTextFile() {
//connect to database and write results to text file
return $textFile; //path to the generated file
}
private function transferFile($textFile) {
//return whether the file was successfully SFTP
}
}
脚本文件
<?php
require __DIR__ . "/../config/Config.php";
require __DIR__ . "/../Application.php";
$config = new Config();
$app = new Application($config);
$app->execute();