我已經在那裏我創建呼應的JSON輸出控制器文件的情況中獲取增值經銷商使用的客戶端使用Ajax: echo json_encode($response);
OOP PHP - 從一類到類另一個文件
的在另一個文件中的主類,除其他外,抓住了CMS的所有設置變量。
現在,控制器文件有一個類可以生成來自API的請求,但類(username, id, count, etc.)
中的設置變量是硬編碼的,因爲我無法弄清楚如何從另一個主類中獲取它們文件。使用硬編碼設置,控制器文件按預期創建並回顯json輸出。它只需要主類的動態變量。
請原諒我缺乏OOP的知識和使用。我一直在用像這樣的結構來嘗試它,在這裏再次嘗試從主類獲取用戶名和其他變量到單獨文件中的另一個類。
** 編輯 **根據@Dave Just的評論重新考慮這一點,因爲它更合理。因此,如果我將api_request函數移到mainClass和return
響應中,我可以得到我需要的變量,並且請求仍然有效。所以這將導致我問 - 我怎麼能仍然在單獨的文件中從api_request函數回顯$response
?與json分開的文件是我用於我的ajax腳本。
class mainClass {
public $username;
function __construct() {
...
}
public function api_settings($username) {
...
}
}
$main_class = new mainClass;
$main_class->api_settings();
// OR
$main_class->username;
API-call.php
class apiCall extends mainClass {
public $username;
function __construct() {
parent::__construct;
...
}
public function api_request() {
...
$return = $api_auth->request(
'GET',
$api_auth->url('/cms-plug'),
array(
//where I need to be able to grab the $username from the main class
'username' => 'joebob'
)
);
echo json_encode($response);
}
}
$api_class = new apiCall;
底線:你打破了'SRP'和'LSP' – Yang
和'api_request()'應該做綁定不發送(不要回應它,但返回),因爲它導致該方法一次做2件事,這是不好的做法。 – Yang
這很有道理@DaveJust。看到我上面的編輯,因爲它可能更容易,更好的做法來處理新的問題......? –