[1062] PHP7入門

7. 多人合作開發

一、 Git多人合作開發

  1. Git用來做版本控制,Git是分散式,每個人都有一份完整的本機儲存庫。
  2. 下載安裝git:https://git-scm.com/download/win。如此就有git可用,但需用終端機下指令,VSCode亦可自動整合,沒太多需求的話,這樣就行了。可做自己專案的版本控制。
  3. 要多人開發,需有個遠端儲存庫,可自架,亦有免費的網路服務,如GitHub
  4. 先註冊遠端儲存庫GitHub:https://github.com/join?source=header
    • (1) 步驟一:填入帳號、Email、密碼
    • (2) 步驟二:選擇免費方案(Unlimited public repositories for free. )
    • (3) 步驟三:簡單的問卷調查,隨便填,跳過亦可
    • (4) 步驟四:收信啟用即可(Start a Project)
  5. 安裝圖形操作界面:https://www.gitkraken.com/
  6. 常見詞彙或指令:
    • (1) Working Directory 工作目錄:一個資料夾,放程式碼或檔案的地方,如 reporter
    • (2) Repository 儲存庫(版本庫):用來紀錄版本的資料夾,一般在工作目錄下的 .git
    • (3) Master 主幹:通常第一個建立的專案版本會稱為Master版本
    • (4) Branch 分支 :可將某個版本複製一份,獨立成為另一個新的分支版本
    • (5) Clone 複製:把在遠端儲存庫上的專案製到本地
    • (6) Fork 分叉:把別人在遠端儲存庫的專案內容複製一份到自己的遠端儲存庫
    • (7) Commit提交:把異動的檔案送到本機儲存庫。
    • (8) Push 上推:可以把自己目前本機端儲存庫的相關檔案,上傳到遠端儲存庫
    • (9) Pull 下拉:把遠端儲存庫的最新版下載至自己的本機,並將遠端分支合併到本地分支
    • (10) Pull Request:主動要求第三方開發者納入自己開發的程式,將本地端儲存庫上的程式碼,整併到對方的儲存庫上
  7. 整體運作流程:
    • (1) 建立開發專案(Init→GitHub.com→選擇帳號、設定專案英文名稱、指定目錄即可)
    • (2) 若是要參與某專案,只要連結到網站網址,按下Fork按鈕即可,然後回到 gitkraken(File→Clone Repo→Clone→GitHub.com→選擇專案、指定目錄即可)
    • (3) 接著在專案目錄下新增或修改檔案,開發者將需要提交的檔案標記為staged檔案(view all change→stage all changes)。輸入摘要,執行提交(commit),將異動檔案及紀錄儲存到儲存庫中。
    • (4) 若要傳到GitHub,開發者則需使用Push將異動部份推到遠端儲存庫上整併。
    • (5) 每次編輯專案時,可先從遠端儲存庫將新版程式碼取回(Pull)本地端儲存庫。
    • (6) 若是Fork他人專案者,若已將想做功能完成,可Pull Request要求納入原始專案中。

二、 關於.gitignore檔

  1. 有一些檔案是無須(或不可)上傳到git的,例如快取檔或設定檔
  2. 因此可以建立 .gitignore檔在專案目錄下,把不要提交的目錄或檔案寫進去即可,如:
    cache/
    templates_c/

三、 巷談集系統需求分析

  1. 編輯精選:由編輯群挑選當周一則精選主題,類似頭條新聞,最上一則呈現
  2. 街巷故事:由社大師生書寫發表台南有趣或重要的故事或新聞
  3. 市井觀點:類似評論及專題功能,會有單一主題,多人發表的型式,以呈現不同觀點。
  4. 私房知識塾:由社大各學程教師提供本身的課程介紹,類似一周一課。呈現的方式可以是課程新知識,資深學員學習心得分享等(類似環資中心的綠課表單元)
  5. 其他:因應分享,每一則新聞可點選臉書,Line,推特及google分享鍵,希望每一則新聞可以有字體大小選擇鍵、稿件採編審制,會先寄到編輯信箱,先進行校對與資料核對。
  6. 試問: 如何規劃資料庫?改如何呈現?該如何做?

四、 前端表單驗證

  1. 官網:https://github.com/posabsolute/jQuery-Validation-Engine
  2. 下載解壓後,只需要js及css這兩部份檔案。
  3. 在表單前加入(確定已經有先引入jquery.js):
    <script src="js/languages/jquery.validationEngine-zh_TW.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>
    <link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css">
  4. 表單必須加入id名稱,例如:
    <form id="myform">
  5. 在欲套用驗證的欄位把參數加入class中,且該欄位必須有設定id,其基本格式如:
    <input type="text" name="title" id="title" class="validate[required, minSize[4], maxSize[50]]">
    • (1) equals[field.id]:等於某欄位
    • (2) min[float]:最小值、max[float]:最大值
    • (3) minSize[integer]:最小字數、maxSize[integer]:最大字數
    • (4) minCheckbox[integer]:至少選幾個、maxCheckbox[integer]:最多選幾個
    • (5) custom[格式]:驗證各種輸入內容,格式可以是:
      • phone(電話)
      • url(網址)
      • email(Email)
      • date(日期 YYYY-MM-DD)
      • number(數字,如:-143.22 or .77 but also +234,23)
      • integer(整數,如:-635 +2201 738)
      • ipv4(IP,如:127.0.0.1)
      • onlyNumber(僅數字)
      • onlyNumberSp(僅數字及空白)
      • onlyLetter(僅字元)
      • onlyLetterSp(僅字元及空白)
      • onlyLetterNumber:僅字元和數字,無空白
  6. 切換位置:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
  7. 最後記得加上:
    <script>
        $(document).ready(function () {
            $('#myform').validationEngine();
        });
    </script>