将类对象传递给不同的函数

时间:2017-12-04 22:55:56

标签: php

我真的在寻找一些关于实现目标的最佳方法的建议。我在没有任何库的纯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函数本质上充当入口点。现在这个函数有了对象,它需要将它传递给另外几个需要该对象的函数。对我来说这看起来有点奇怪,因为如果它是一个类,我可以只引用类变量。

这是不使用课程时正常的做事方式吗?有没有更好的方法来做到这一点,我不必继续传递对象,而不使用类?

任何建议表示赞赏

1 个答案:

答案 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();