Helpers 函式
陣列
array_add
array_add
函式可以將指定的 鍵 (key) / 值 (value) 加入到陣列中,如果陣列已有此 "鍵 (key)" 則不做加入的動作。
$array = array('foo' => 'bar');
$array = array_add($array, 'key', 'value');
array_divide
array_divide
函式回傳兩組陣列,一個陣列是原 "鍵 (key)" 的陣列,而另一個是原 "值 (value)" 的陣列。
$array = array('foo' => 'bar');
list($keys, $values) = array_divide($array);
array_dot
array_dot
函式將多維陣列轉換成一維陣列,並使用 "逗號 (.)" 去顯示原陣列資料的深度
$array = array('foo' => array('bar' => 'baz'));
$array = array_dot($array);
// array('foo.bar' => 'baz');
array_except
array_except
方法可以移除陣列中指定的 "鍵 (key)" 值。
$array = array_except($array, array('keys', 'to', 'remove'));
array_fetch
array_fetch
方法可以撈取巢狀陣列的指定 "鍵 (key)" 值。
$array = array(array('name' => 'Taylor'), array('name' => 'Dayle'));
var_dump(array_fetch($array, 'name'));
// array('Taylor', 'Dayle');
array_first
array_first
方法回傳第一個符合條件的陣列資料。
$array = array(100, 200, 300);
$value = array_first($array, function($key, $value)
{
return $value >= 150;
});
也可以在第三個參數設定預設值:
$value = array_first($array, $callback, $default);
array_flatten
array_flatten
方法可以取得多維陣列所有最後的 "值 (value)"。
$array = array('name' => 'Joe', 'languages' => array('PHP', 'Ruby'));
$array = array_flatten($array);
// array('Joe', 'PHP', 'Ruby');
array_forget
array_forget
方法會移除使用 "逗號 (.)" 所指定的陣列深度值
$array = array('names' => array('joe' => array('programmer')));
$array = array_forget($array, 'names.joe');
array_get
array_get
方法使用 "逗號 (.)" 去取得原陣列深度的資料。
$array = array('names' => array('joe' => array('programmer')));
$value = array_get($array, 'names.joe');
array_only
array_only
方法可以取得陣列第一層中,指定的 "鍵 (key)" 資料。
$array = array('name' => 'Joe', 'age' => 27, 'votes' => 1);
$array = array_only($array, array('name', 'votes'));
// array('name' => 'Joe', 'votes' => 1);
array_pluck
array_pluck
方法可以取得 row 資料集陣列中,指定的 "鍵 (key)" 資料
$array = array(array('name' => 'Taylor'), array('name' => 'Dayle'));
$array = array_pluck($array, 'name');
// array('Taylor', 'Dayle');
array_pull
array_pull
方法可以取得指定的 "鍵 (key)" 資料,並移除原陣列 指定的 "鍵 (key)" 資料
$array = array('name' => 'Taylor', 'age' => 27);
$name = array_pull($array, 'name');
/*
$name : array('name' => 'Taylor');
$array : array('age' => 27);
*/
array_set
array_set
方法使用 "逗號 (.)" 設定所指定的陣列深度的資料
$array = array('names' => array('programmer' => 'Joe'));
array_set($array, 'names.editor', 'Taylor');
array_sort
array_sort
方法會在閉合函式中回傳排序後的資料。
$array = array(
array('name' => 'Jill'),
array('name' => 'Barry'),
);
$array = array_values(array_sort($array, function($value)
{
return $value['name'];
}));
head
回傳陣列中第一個元素的資料,經常在方法鏈中使用。
$first = head(Array('foo' , 'bar'));
// 'foo';
$first = head(Array('foo'=> array(1,2) , 'bar'));
// array(1,2)
last
回傳陣列中最後一個元素的資料,經常在方法鏈中使用。
$last = last(Array('foo' , 'bar'));
// 'bar';
$last = last(Array('foo' , 'bar'=> array(3,4)));
// array(3,4)
路徑
app_path
app_path()
方法可以取得 app
目錄的完整路徑。
base_path
base_path()
方法可以取得安裝目錄的完整路徑。
public_path
public_path()
方法可以取得 public
目錄的完整路徑。
storage_path
storage_path()
方法可以取得 app/storage
目錄的完整路徑。
字串
camel_case
轉換給予的字串為 駝峰式大小寫 (camelCase)
形式。
$camel = camel_case('foo_bar');
// fooBar
class_basename
取得不包含 "命名空間(namespace)" 的類別名稱。
$class = class_basename('Foo\Bar\Baz');
// Baz
e
在指定字串執行 htmlentites
方法,且支援 UTF-8 字串編碼。
$entities = e('<html>foo</html>');
ends_with
判斷字串結尾是否有指定的字串。
$value = ends_with('This is my name', 'name');
// true
snake_case
轉換給予的字串為 蛇底式小寫 (snake_case)
形式。
$snake = snake_case('fooBar');
// foo_bar
starts_with
判斷字串開頭是否有指定的字串。
$value = starts_with('This is my name', 'This');
// true
str_contains
判斷字串中是否有指定的字串。
$value = str_contains('This is my name', 'my');
str_finish
指定字串結尾的最後字元,並確保只有一個指定的結數字元。
$string = str_finish('this/string', '/');
// this/string/
$string = str_finish('this/string/', '/');
// this/string/
$string = str_finish('this/string////////', '/');
// this/string/
str_is
判斷字串是否有符合指定的 模式 (pattern),星號代表萬用字元。
$value = str_is('foo*', 'foobar');
str_plural
轉換字串為複數形式 (僅限英文)。
$plural = str_plural('car');
// cars
str_random
產生指定長度的亂數字串。
$string = str_random(40);
// string(40) "1l8P1t9R0bwaDl7RhnYqGovx5ZDp32R0rcPrFLPv"
str_singular
轉換字串為單數形式 (僅限英文)。
$singular = str_singular('cars');
// car
studly_case
轉換給予的字串為 首字大寫 (StudlyCase)
形式。
$value = studly_case('foo_bar');
// FooBar
trans
取得語言資料,與 Lang::get
方法相同。
$value = trans('validation.required'):
trans_choice
取得指定單複數型態語言資料,與 Lang::choice
方法相同。
$value = trans_choice('foo.bar', $count);
網址
action
產生指定控制器動作的網址。
$url = action('HomeController@getIndex', $params);
// http://example.com/homes/param
asset
產生存取資源的網址
$url = asset('img/photo.jpg');
link_to
產生連結到指定網址的 HTML 連結
echo link_to('foo/bar', '標題', $attributes = array(), $secure = null);
// <a href="http://example.com/foo/bar">標題</a>
link_to_asset
產生連結到指定資源的 HTML 連結
echo link_to_asset('foo/bar.zip', '標題', $attributes = array(), $secure = null);
// <a href="http://example.com/foo/bar.zip">標題</a>
echo link_to_asset('foo/bar.zip', '標題', $attributes = array('title'=>'檔案'), $secure = true);
// <a href="https://example.com/foo/bar.zip" title="檔案">標題</a>
link_to_route
產生連結到指定路由 (Route) 的 HTML 連結
echo link_to_route('route.name', '標題', $parameters = array(), $attributes = array('title'=>'連結說明'));
// <a href="http://example.com/route_name" title="連結說明">標題</a>
link_to_action
產生連結到指定控制器 (Controller) 的 HTML 連結
echo link_to_action('HomeController@getIndex', $title, $parameters = array(), $attributes = array('title'=>'連結說明'));
// <a href="http://example.com/homes" title="連結說明">標題</a>
secure_asset
產生使用 HTTPS 存取資源的網址。
echo secure_asset('foo/bar.zip', $title, $attributes = array());
// https://example.com/foo/bar.zip
secure_url
產生使用 HTTPS 存取路徑的網址。
echo secure_url('foo/bar', $parameters = array());
// https://example.com/foo/bar
url
產生完整的存取路徑網址。
echo url('foo/bar', $parameters = array(), $secure = null);
// http://example.com/foo/bar
echo url('foo/bar', $parameters = array('param1','param2'), $secure = true);
// https://example.com/foo/bar/param1/param2
其他雜項
csrf_token
取得目前的 CSRF 標記 (token)
$token = csrf_token();
dd
列印指定的變數,並中斷執行的程式。
dd($value);
value
如果給予 value()
方法的值是 閉合函式
,則取得 閉合函式
的回傳直,否則直接回傳傳入的變數值。
$value = value(function() { return 'bar'; });
// bar
$value = value(function() { });
// NULL
$value = value(array(123));
// array(123)
$value = value('input_string');
// input_string
with
回傳指定的物件,經常在方法鏈中使用。
$value = with(new Foo)->doWork();