自建了 php autoload ,並同時使用 composer 的 autoload,應該注意什麼?

不知道大家有沒有看過下面的 php autoload 教學?

Eric G. Huang 不像樣工程師
PHP系列 – Autoload 自動載入
http://justericgg.logdown.com/posts/196891-php-series-autoload

跟據這個教學,我解決了很多 class include require 檔案引入的困難,而且用了很長時間。

下面提供一些參考資料,讓大家可以分享。

Composer Basic usage: autoloading
https://getcomposer.org/doc/01-basic-usage.md#autoloading

PHP PSR-4 Autoloader 機制
http://blog.tonycube.com/2016/09/php-psr-4-autoloader.html

什麼是 PHP Standards Recommendations(PSR)(PHP標準建議)?
https://www.php-fig.org/psr/

PHP PSR-4 Autoloader 機制
http://blog.tonycube.com/2016/09/php-psr-4-autoloader.html

Composer Basic usage: autoloading
https://getcomposer.org/doc/01-basic-usage.md#autoloading

運用Composer Autoloader

1. 準備自建的 namespace 和 目錄位置

e.g. 
namespace1 = application\control\, 目錄位置 = {user_directory}/application/control 
namespace2 = application\module\, 目錄位置 = {user_directory}/application/module 
namespace3 = application\mouule\sql\, 目錄位置 = {user_directory}/application/module/sql
Class 例子:

<?php
//application/module/config.php

namespace application\module;

class config
{


    function __construct() {
        ...
    }
}

2. 在 composer.json 加入自建的 namespace 和 目錄位置

{
    "autoload": {
        "psr-4": {
            "application\\control\\": "application/control/",
            "application\\module\\": "application/module/",
            "application\\module\\sql\\": "application/module/sql/"
        }
    }
}

3. 進入 console mode,使用用戶權限及用戶的root目錄,執行下面的程式

composer dump-autoload

4. 在需要的php 程式中,頂部加入(因為我的 composer 是放在 /vendor中,請自行改進)

require __DIR__ . '/vendor/autoload.php';

Kirchhoff’s Circuit Law 克希荷夫(基爾霍夫)定律:複雜電路

在電路中,流經各電阻的電流應為多小安培?

求答案需要使用:

  1. OHM’s Law
  2. Kirchhoff’s Circuit Law 第一定律:Kirchhoff’s Current Law
  3. Kirchhoff’s Circuit Law 第二定律:Kirchhoff’s Voltage Law

先把電路中各個電阻的電流用代號定義

利用 Kirchhoff’s Voltage Law 和 OHM’s Law 制定三條電流流經電阻的公式

電池電壓 – 5Ω電阻電壓 – 2Ω電阻電壓 = 0V
公式1:9 – i₁x 5 -(i₁ + i₃) x 2 = 0

公式2:9 – i₂ x 1 – (i₂ – i₃) x 3 = 0

公式3:9 – i₂ x 1 – i₃ x 2 – (i₁ + i₃) x 2 = 0

獲得3條公式後,然後化解簡化:

公式1:9 – i₁ x 5 -(i₁ + i₃) x 2 = 0
公式2:9 – i₂ x 1 – (i₂ – i₃) x 3 = 0
公式3:9 – i₂ x 1 – i₃ x 2 – (i₁ + i₃) x 2 = 0

化解公式1:9 – 7i₁ – 2i₃ = 0
化解公式2:9 – 4i₂ + 3i₃ = 0
化解公式3:9 – 2i₁ – i₂ -4i₃ = 0

把 i₃ 消除

公式1: (9 – 7i₁) = 2i₃
公式2: (4i₂ – 9) = 3i₃
公式3:(9 – 2i₁ – i₂) = 4i₃

(公式1 x 2) – (公式3) = 0
2(9 – 7i₁) – (9 – 2i₁ – i₂) = 0
18 – 14i₁ – 9 + 2i₁ + i₂ = 0
9 – 12i₁ + i₂ = 0
公式4: 12i₁ – 9 = i₂

(公式1 x 3) – (公式2 x 2) = 0
3(9 – 7i₁) – 2(4i₂ – 9) = 0
27 – 21i₁ – 8i₂ + 18 = 0
45 – 21i₁ – 8i₂ = 0
公式5: 45 – 21i₁ = 8i₂

(公式4 x 8) – (公式5) = 0
8(12i₁ – 9) – (45 – 21i₁) = 0
96i₁ – 72 – 45 + 21i₁ = 0
117i₁ – 117 = 0
117i₁ = 117
結果:i₁ = 1A

因此

i₁ = 1A, i₂ = 3A, i₃ = 1A

Passive sign convention 被動符號規定

Source: https://www.youtube.com/watch?v=mH-XUGkNohM

Source: https://www.youtube.com/watch?app=desktop&v=II2nDdt4uX0

在電氣工程中,(被動符號規定 PSC)是電氣工程界普遍採用的用於定義電路中電源符號的符號約定或任意標準規則。

重點:用符號分別元件是「供」還是「得」

被動符號規定 (得)(獲得電流)
主動符號規定 (供)(提供電流)

用手提電話充電來分析 Passive sign convention

正常手機充電

不正常手機充電

手機電池越充越無電

充電倒流放電

ECU Remap Target

– Performance remap

– 50/50 remap

– Economy remap

– Launch Control (where available)

– Popcorn Limiter/Hard Cut Limiter (Where available)

– DPF delete

– EGR delete

– VAG Hot start problems

– Speed limiter

– Lamda delete

– pop and bang /overrun