Hackificator

2018-09-27 14:25 更新

雖然您應該總是使用Hack(<?hh)啟動新的項目,但我們意識到有一個龐大的PHP代碼庫,不能從頭開始丟棄或重寫。

Hackificator是第一個用于開始將您的PHP代碼庫轉(zhuǎn)換為Hack的工具。

hackificator [options] <directory or file path>

如果您想查看Hackificator可用的所有選項,您可以通過以下方式查看幫助hackificator --help。

Hackifying PHP代碼

首先,將一個.hhconfig文件放在你的代碼庫的根目錄下。這是必需的。

然后,當運行Hackificator時,它會掃描您的項目/代碼庫以獲取PHP文件,并執(zhí)行兩個步驟:

  1. 將文件轉(zhuǎn)換<?php為<?hh。在這一點上,你正式是一個Hack文件。
  2. 它對您的代碼進行了一些非常簡單的更改,以幫助阻止Hack typechecker錯誤。例如,如果您將類型提示參數(shù)指定為null默認值,則通常將其添加為可空值?。

以下是轉(zhuǎn)換示例:

<?php

class A {}

function foo(A $a = null) {
  return true;
}

至:

<?hh

class A {}

function foo(?A $a = null) {
  return true;
}

請注意,我們沒有為返回類型添加任何類型的注釋foo。這將在以后出現(xiàn)hh_server --convert。

此外,最重要的是要注意,如果您在項目中已經(jīng)有Hack文件而你還需要進行hackify,那么它們必須用typechecker清理。即運行hh_client必須產(chǎn)生No errors!。

升級Hack Typechecker模式

您還可以使用hackificator將當前的Hack文件(而不是PHP文件)升級到最嚴格的模式。因此,舉例來說,你可以用它去partial到strict模式,假設轉(zhuǎn)換strict模式,不會造成任何typechecker錯誤。

hackificator --upgrade <directory or file path>


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號