Drupal 8 WSCCI update

翻譯自 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。也即是說過去一年的完成的工作有:

  1. 使用 Symfony2 HttpKernel component 和 model 處理請求
  2. 重寫 routing (路由) 系統,脫離自 menus
  3. 全新的 routing 系統以支持基於路徑路由 (routing by path), HTTP 方法,HTTP vs HTTPS,基本的 mime-based 路由,還有支持第三方的插件。這是一個劃時代的進化,帶來更多的可能性
  4. 全新的 routing 系統可以抽換成基於 non-SQL 的後台
  5. 全新的,更彈性的存取權限管理,支持一個路由有多個存取檢查點
  6. 新的串列化 (serialization)系統,可以輸出任何 entity 到一個標準的格式,例如 Atom, JSON, 或 HAL,支持現有的任何 entity,欄位組合
  7. 新的 rest.module,為任一 entity 對象提供一個 RESTful 存取方式
  8. REST/serialization 支持 Views,令 views 的結果變成一個串列化的資源
  9. Guzzle 加到 core,一個完全支持 HTTP 1.1 的客戶端,比現在的 drupal_http_request()更強大和有彈性

雖然不是 WSCCI 的一部份,但我們對 Drupal 的影響很深遠,重組很多核心系統到整理好的新服務,帶來一個新的相依性容器 (Dependency Injection Container) 從而推動更加可測試的代碼,還有很多一般的 API 改進。側面的影響是,核心會更加模組化和更容易抽換核心的某些部份!

這當中有一些很久之前的功能請求,這些改變都是巨大的,觸及更遠的。Drupal 8 會是一個跨媒界 (Hypermedia) 的服務器,加上其他 Drupal 8 的工作,和 Drupal 作為一個 CMS 的歷史,我們看到一個巨大的可見未來。

等一下,是誰那麼神?

有很多人 involved 到 WSCCI 的工作,我不可能列出每一個人的名字,因為那太花時間了,但我想在此特別提到這些人:

當然還有 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 頁面

  1. 繼續完成 Routes 和 Menus的分離工作。我們已經開始了這個工作,餘下的部分我們需要其他人的幫忙.
  2. 完成使用 HAL 作為 Hypermedia 資源的預設格式
  3. 使用 REST 時匯入的 Entity References 的處理,令 REST 系統可以完成幅蓋輸入輸出,不同環境之間的步儲
  4. 使用 Symfony 的 session 處理機制,令我們可以除去很多的多餘代碼
  5. 完成轉換到 UrlGenerator 的工作,令向外的路徑更彈性,可暫存化,可插件化
  6. 向外的請求由使用drupal_http_request() 轉換到 Guzzle
  7. 大的一塊:Merge頁面緩存和區塊緩存,令其使用 HTTP caching 和 ESI,基於Symfony 新的 fragment pipeline

最後,將現有的 menu 轉換到新的 routing 系統。這是一個容易的,可以使用群體合作的部分,但我們要先完成上面所列的東西才可以

所以,我們還沒有完成,還有一大段路

OK 那和我有什麼關係?

全部都有關!Drupal 8 不會超凡的,除非我們完成這些工作。我們需要你的幫忙才可以

來參加 WSCCI 的頻道,我們也會很快開展轉換routing 系統文檔的工作。不要忘記我們下個星期還有一個世界性的大型 sprint!你所在的區域有嗎?你會否前往?你應該去的。這會是一個絕佳的機會參與到核心的開發,特別是 WSCCI 的工作。幾個 WSCCI 的工作人員會在他們的所在地提供幫助

如果你會來到 DrupalCon Portland,那都會有一個會議前和會議後的 sprints,WSCCI 也會參加。

Drupal 8 不會完成直至它被完成。一起努力吧。

Google