翻譯自 http://groups.drupal.org/node/286108
Drupal 8 的功能凍結的日子已經到了,兩年間無數人們的努力之後,這正是時候停一停,談一談 Web Services and Context Core Initiative (WSCCI) ,還有看一看餘下的工作。
先總結:太扯了,我們已經完成了這麼多!太扯了,我們還有那麼多工作!
Drupal 8 的第一年我們沒有太多的新功能或者超凡的改變。我們修補了很多臭蟲,做了很多地基的工作,但最重的擔子要等到2012年2月才到達。那就是決定完全使用 Symfony2 的Components 作為 Drupal 8 的基本的 pipeline。這是一個多年來 Drupal 最大和最重要的決定,而且我相信完全是一個正確的決定。
直到現在的工作
WSCCI 基本上分成了 SCOTCH 和 WSCCI ,還有 WSCCI rebooted。也即是說過去一年的完成的工作有:
- 使用 Symfony2 HttpKernel component 和 model 處理請求
- 重寫 routing (路由) 系統,脫離自 menus
- 全新的 routing 系統以支持基於路徑路由 (routing by path), HTTP 方法,HTTP vs HTTPS,基本的 mime-based 路由,還有支持第三方的插件。這是一個劃時代的進化,帶來更多的可能性
- 全新的 routing 系統可以抽換成基於 non-SQL 的後台
- 全新的,更彈性的存取權限管理,支持一個路由有多個存取檢查點
- 新的串列化 (serialization)系統,可以輸出任何 entity 到一個標準的格式,例如 Atom, JSON, 或 HAL,支持現有的任何 entity,欄位組合
- 新的 rest.module,為任一 entity 對象提供一個 RESTful 存取方式
- REST/serialization 支持 Views,令 views 的結果變成一個串列化的資源
- 將 Guzzle 加到 core,一個完全支持 HTTP 1.1 的客戶端,比現在的 drupal_http_request()更強大和有彈性
雖然不是 WSCCI 的一部份,但我們對 Drupal 的影響很深遠,重組很多核心系統到整理好的新服務,帶來一個新的相依性容器 (Dependency Injection Container) 從而推動更加可測試的代碼,還有很多一般的 API 改進。側面的影響是,核心會更加模組化和更容易抽換核心的某些部份!
這當中有一些很久之前的功能請求,這些改變都是巨大的,觸及更遠的。Drupal 8 會是一個跨媒界 (Hypermedia) 的服務器,加上其他 Drupal 8 的工作,和 Drupal 作為一個 CMS 的歷史,我們看到一個巨大的可見未來。
等一下,是誰那麼神?
有很多人 involved 到 WSCCI 的工作,我不可能列出每一個人的名字,因為那太花時間了,但我想在此特別提到這些人:
- Alex Bronstein
- Lin Clark
- Michael Dowling (Guzzle)
- Niklas Fiekas
- Sascha Grossenbacher
- Sam Leathers
- Andrei Mateescu
- Georg Oechsler
- Fabien Potencier (Symfony)
- Klaus Purer
- Lukas Smith (Symfony)
- Chris Webber
- Daniel Wehner
當然還有 Kat Bailey,從 Drupal's bootstrap pipeline 的深湚中帶大家回到水面。
我也想提一下 Acquia 一直為 Klaus 和 Lin 提供經濟上的幫助去為串列化和 REST 模組的工作了數個月。沒有他的話,我們可能會有一個過於強大的路由系統而其中大部份都沒有用到。但這個工作還沒有完成,所以如果你覺得資助他們兩個令 Drupal 8 成為一個一流的 REST server 會幫助到你的話,他們現在正在找更多的資助資源去支持這個工作。
太好了,我們已經完成了?
呀。。還稱不上。過渡 Drupal 到一個新的基礎不是一年可以完成的工作。我們建好了地基,乾了水泥,埋了水管,裝了窗。那是一個大工程,但還有內部裝修,傢俱等的工作要完成。
也即是說,是時候過渡 Drupal 到 Drupal 8 了
WSCCI 團隊每個星期都在 IRC,星期二中午 US 東部時間在 #Drupal-WSCCI。如果你想參加,這是一個好的開始。我們的項目經理,Ashleigh Thevenet 會經常更新最新的重要單元。重要又影響闊的單元也會出現在核心 Initiatives 頁面
- 繼續完成 Routes 和 Menus的分離工作。我們已經開始了這個工作,餘下的部分我們需要其他人的幫忙.
- 完成使用 HAL 作為 Hypermedia 資源的預設格式
- 使用 REST 時匯入的 Entity References 的處理,令 REST 系統可以完成幅蓋輸入輸出,不同環境之間的步儲
- 使用 Symfony 的 session 處理機制,令我們可以除去很多的多餘代碼
- 完成轉換到 UrlGenerator 的工作,令向外的路徑更彈性,可暫存化,可插件化
- 向外的請求由使用drupal_http_request() 轉換到 Guzzle
- 大的一塊:Merge頁面緩存和區塊緩存,令其使用 HTTP caching 和 ESI,基於Symfony 新的 fragment pipeline
最後,將現有的 menu 轉換到新的 routing 系統。這是一個容易的,可以使用群體合作的部分,但我們要先完成上面所列的東西才可以
所以,我們還沒有完成,還有一大段路
OK 那和我有什麼關係?
全部都有關!Drupal 8 不會超凡的,除非我們完成這些工作。我們需要你的幫忙才可以
來參加 WSCCI 的頻道,我們也會很快開展轉換routing 系統文檔的工作。不要忘記我們下個星期還有一個世界性的大型 sprint!你所在的區域有嗎?你會否前往?你應該去的。這會是一個絕佳的機會參與到核心的開發,特別是 WSCCI 的工作。幾個 WSCCI 的工作人員會在他們的所在地提供幫助
如果你會來到 DrupalCon Portland,那都會有一個會議前和會議後的 sprints,WSCCI 也會參加。
Drupal 8 不會完成直至它被完成。一起努力吧。