2016-03-17 116 views
2

我打算開發一個內容管理系統(CMS),如下圖所示;我的內容管理系統

Figure: Intended CMS design

  1. 是否有可能使用PHP的標準庫的全面發展呢?
  2. 我需要使用PHP Web框架嗎?如果是這樣,爲什麼和什麼框架是理想的?
  3. 我希望使用MySQL作爲後端。 我希望使用以下技術作爲前端;

    • HTML5和CSS3 - 我自己硬編碼(?是否有任何框架或東西可以很容易聽到的東西lesscss.org)
    • jQuery的 - 使HTML元素的功能
    • 阿賈克斯 - 避免頁面令人耳目一新
    • 引導 - 使我的CMS響應
    • 有沒有我使用的技術或任何建議?
  4. 我更喜歡通過學習和硬編碼來改進我的HTML,CSS,PHP和其他技術。所以我希望不要使用CMS如 joomla,WordPress等。對不對?

請注意:我已經搜索谷歌廣泛之前,我把我的問題在這裏。但我無法確認我接下來做什麼。感謝您的意見。

+0

你可以在這裏檢查https:// css-tricks。com/php-for-beginners-building-your-first-simple-cms/for php and mysql and you can use framework in your question。如果您對PHP和前端不熟悉,請首先嚐試清除php,mysql,html和css的基礎知識。好運 – NeosFox

+0

感謝您提供的資源! – Kasuni

回答

3

您的問題看起來確實很好研究,我認爲每個人都打算建立一個定製的CMS已經到了這個地步,他們問自己這些基本問題(換句話說:好問題!)。現在到一些答案:

1)是的,這是可能的。


2)雖然純淨,天然的,硬編碼的PHP構建一個CMS是可能的,我不會推薦它用於生產。你可以做到這一點,你將基本上從經驗中獲益,有許多小問題(如路由/用戶管理/認證/與數據庫/表單構建(如在你的屏幕截圖)/等)已經由一個好的框架解決了。

同樣,因爲你是初學者,你自然不知所措,你必須解決的問題和決定。這也是爲什麼一個框架會成爲一個好起點的好點。雖然有些解決方案有時候有點太自以爲是,但它們仍然給你一個良好的結構,大部分時間都遵循我們行業的最佳實踐。

哪種框架是最爲理想的爲你的項目,你必須對你自己的,根據您的要求決定,但一些常見的有:

  • Symfony(可能是最知名和最使用php框架,但也非常抽象/我會推薦這個在一個非常大的項目,你在一個團隊工作,你的目標是靈活的可維護性)

  • Laravel(摘自他們的網站:一個了不起的ORM,無痛的路由,強大的隊列庫和簡單的身份驗證e工具,您需要現代的,可維護的PHP。)

  • Silex(Symfony的小弟弟,來自他們網站的信息:Silex是PHP的PHP微型框架。它建立在Symfony2和Pimple的肩膀上,也受到Sinatra的啓發。)

  • FatFreeFramework(來自他們的網站:一個功能強大但易於使用的PHP微型框架,旨在幫助您構建動態且強大的Web應用程序 - !快)

爲我所用的Silex自己很多次,還當我開始與最佳實踐PHP,我建議開始使用它,如果你決定編寫自己的CMS。我很快做了一些類似於你的截圖的Management-CMS(使用他們的Form-Builder),並對結果感到滿意。


3)再次,這是你來決定。對於後端,您可能會使用MySQL,如果您只需要一個數據庫。在使用HTML5/CSS的前端,你可以試試jQuery和Bootstrap(然後在這裏他們的或更少的sass實現)。

如果你真的沒有太多的JavaScript邏輯,你也可以嘗試使用本地JS,而不使用jQuery。這樣,您還將學習更多關於該語言的知識,並減少用戶必須下載的供應商依賴關係。


4)如果你真的達到學到了很多東西,那麼,你應該手工編寫自己的一切。這樣您也可以完全控制將代碼傳送給用戶的方式。對於最常見的CMS來說,這是一個問題:它們會通過其他插件或其他東西污染您的代碼,並且您很快無法控制輸出。

但是,如果您需要加快速度,CMS還可以通過給予您對輸出的完全控制併爲您提供創意自由來解決此問題,例如MODX


最終它取決於您,尤其是您的項目需求。如果它是一個簡單的網站,並且您很方便地想要編輯內容並且還有一些入門幫助,那麼我建議使用CMS。

如果你真的想了解所有這些東西,並且你有一些特殊需求,那麼繼續編寫你的定製代碼應用程序。無論如何:祝你好運! :)

+1

非常感謝你的詳細解答。我澄清了我所期望的一切。再次感謝 – Kasuni

+1

這很好:)如果您需要更多的澄清,請不要猶豫,以評論。你應該等待一些其他的答案,並接受最能幫助你的答案! –