[技術討論] 以下兩種寫法,係dependency上面有咩好壞?

本帖最後由 清仔 於 2018-5-23 11:34 編輯

(1)一個common既file再引入唔同config
(2)一個config引入番common既野入黎

common.php?fruit=apple:
  1. <?php
  2. include("$_GET['fruit'].php");//$title = "apple";
  3. //Code of common here
  4. ?>
複製代碼
apple.php:
  1. <?php
  2. $title = "apple";
  3. include("common.php");
  4. ?>
複製代碼

(1)一個common既file再引入唔同config
(2)一個config引入番common既野入黎

common.php?fruit=apple:apple ...
清仔 發表於 2018-5-23 11:32

第一種係非常唔好既寫法...

TOP

include 用 $_GET, 係安全性上唔太建議

街外可以係 url 咁試: common.php?fruit=..%2F..%2F..%2F..%2Fetc%2Ffstab

TOP

include 用 $_GET, 係安全性上唔太建議

街外可以係 url 咁試: common.php?fruit=..%2F..%2F..%2F..%2Fetc% ...
rabbit82047 發表於 2018-5-23 13:49


其實validate過就冇問題...

TOP

以上兩位:係,但我想討論既係dependency既關系…

TOP

以上兩位:係,但我想討論既係dependency既關系…
清仔 發表於 2018-5-23 21:43


咁其實你想問乜呢...

TOP

咁其實你想問乜呢...
7h1r733n 發表於 2018-5-23 09:57 PM

我意思係從coupling既角度去睇…

TOP

本帖最後由 梁炳 於 2018-5-24 00:08 編輯

其實好難明你想點...下次不如你舉例舉D實際少少既野

一般來講, 有common code都係分開一個檔
最基本係分開接http requests既php,同邏輯既php,config又分一個
(以下例子唔算最好,output既code寫埋係邏輯入面,不過唔想個例子咁複雜)

config.inc.php
  1. <?php

  2. return [
  3.     'apple' => [
  4.           'title' => 'Apple'
  5.      ],
  6.     'orange' => [
  7.           'title' => 'Orange'
  8.     ]
  9. ];
複製代碼
common.inc.php
  1. <?php

  2. $CONIFG = require('./config.inc.php');

  3. function renderFruitPage($fruit = 'apple'){
  4.    // TODO check for null and validate params
  5.    $pageConfig = $CONIFG[$fruit];
  6.    
  7.    echo "<h1>" .  $pageConfig['title'] . "</h1>";
  8. }
複製代碼
index.php
  1. <?php
  2. require("./common.inc.php");

  3. renderFruitPage($_GET['fruit']);
複製代碼
index.php?fruit=apple
結果:
<h1>Apple</h1>


順帶一講,已經好少人會直接由頭寫php
用一套MVC framework guide住你會好d

TOP