我試圖想出一個基於每個客戶的基礎上配置一個相當標準的基於Web的應用程序的策略,所以我們可以多次出售它,而無需編寫額外的代碼每個客戶。這是一個LAMP棧(其中P是使用yii2的php)爲不同的客戶創建應用程序
我最初的想法是爲每個客戶創建一個JSON/YAML文件,並根據其中的內容開啓/關閉功能。像{hasAmazonApi:0,hasEbayApi:1}等
問題是,當然,代碼中有很多if/else。
我的老闆建議配置文件可以用來實際控制部署時在服務器上部署的代碼,編寫腳本來編寫代碼 - 但這似乎充滿了困難和危險。
這兩種解決方案都不是完美的 - 有什麼建議嗎?
我們決定了(當然,我決定把它賣給我的老闆),並且有了一些與衆不同的東西。 我剛剛解決的問題有點像鉤子。工作流程的每個元素都會發生一個會被run_hook('some-func',$ args)啓動的函數。 這樣,我們可以覆蓋每個客戶的基礎上的每個鉤子,或者如果更適合他們的需求,就使用通用的鉤子。 它更復雜,但實際上使我們的if/else-s – WeeDom