2016-11-16 37 views
0

我面臨着重構和增加新的功能到遺留PHP的Web「應用程序」的挑戰的最佳方式,它由大約788 PHP腳本,它們沒有什麼文件夾結構,它們大部分都是腳本,它們在同一個文件中包含JavaScript,PHP,HTML和CSS代碼,這些腳本堅持並使用來自3種不同數據庫類型(MSSQL,MYSQL和DB2)的數據,其中身份驗證是基於會話的它是基本的PHP,還有一些頁面使用純html和ajax與php腳本進行通信,不用說沒有類定義,大多數情況下甚至沒有功能。什麼是現代化或重構遺留PHP應用程序

我的目標是將其轉化爲一個更易維護的應用程序,最有可能使用我熟悉的symfony組件,引入HTTP請求抽象,路由以及可能的MVC,還將代碼重構爲可用類並實現自動加載作曲家利用第三方庫。

坦率地說,我腦海中唯一的選擇就是把它全部拋開,開始一個新項目。

+1

「坦率地說,我腦海中唯一的選擇就是把它全部丟掉,開始一個新項目。」聽起來像是對我的計劃 – 2016-11-16 03:14:53

+1

我只是想確定可能沒有其他可行的選擇,甚至嘗試閱讀它也是一種痛苦。 –

+2

好吧,沒有魔法「修復狗屎php」的功能。 – 2016-11-16 03:39:53

回答

1

即使重寫一切似乎是最好的主意,有時它是不是最好的商業選擇,可能是十分困難的巨大的代碼庫。

一個解決辦法是引入Symfony的項目,並開始重構通過模塊模塊,但將主要面臨以下問題:

  • Web服務器整合:如何開始一起遺留應用程序symfony應用程序(與例如自定義nginx的位置)的2個應用程序之間
  • 共享會話,但symfony中已經擁有的東西bridge a legacy Application with Symfony Sessions
  • 有一個一致的網頁設計,這是許多工作,但不是在技術上很難
  • 我猜很多其他問題
+0

我實際上意識到重寫的業務缺陷,我遇到的最大缺陷之一是使用會話橋將需要不會在遺留應用程序中結束會話,否則它不能正常工作,我目前正在重構一步一步增加穩定性,因爲它計劃將它移動到另一臺服務器上,並且有許多依賴於系統的路徑,並且舊的mysql_connect將被PDO所取代,我的計劃會放入一些工作,使其不太容易一旦我對業務有了更多的瞭解,就會分崩離析,然後再創造新的東西。 –

+0

我會說這個項目很小,但主數據庫可能需要重新構建,因爲到處都有未使用的字段和表。 –

+0

每次我面對同樣的問題時,我最終都是通過模塊重寫遺留代碼模塊。除了在遺留代碼庫中集成SF2或其他框架之外,您還有其他選擇:按應用程序(前端/後端)分割,使用微服務,創建乾淨的庫。 – LFI

相關問題