Cara jelek, malas, dan mengerikan: Di akhir bootstrap/start.php
, tambahkan include('tools.php')
dan letakkan fungsi Anda di file baru itu.
Cara bersih: Buat perpustakaan. Dengan begitu, itu akan dimuat secara otomatis SAJA saat Anda benar-benar menggunakannya.
- Buat
libraries
folder di dalam app
folder Anda
- Buat file perpustakaan Anda, buat kelas di dalamnya, dan tambahkan fungsi statis ke dalamnya
- Opsi 1 : Edit
start/global.php
untuk menambahkan app_path().'/libraries'
ke ClassLoader::addDirectories(
array.
- Opsi 2 : Edit
composer.json
untuk menambahkan "app/libraries"
ke autoload
array. Laricomposer dump-autoload
- Panggil kelas Anda dan fungsi statis dari pandangan Anda.
Tentang opsi Anda, dikutip dari global.php
file
Selain menggunakan Komposer, Anda dapat menggunakan pemuat kelas Laravel untuk memuat pengontrol dan model Anda. Ini berguna untuk menjaga semua kelas Anda di namespace "global" tanpa memperbarui Komposer.
Anda dapat menggabungkan kedua opsi, di mana loader kelas Laravel akan secara otomatis mencari kelas di direktori terdaftar ( Opsi 1 , lebih mudah) dan Komposer akan menyimpan catatan semua kelas tetapi hanya setelah Anda memperbaruinya ( Opsi 2 , dapat meningkatkan kinerja).
app_path().'/library'
, di start / global.php.sitehelpers.php
Cara saya melakukan ini adalah membuat folder baru di
/app
direktori di root proyek Laravel 4 Anda. Kemudian tambahkan folder ini ke array/app/start/global.php
file pertama seperti:Selama struktur folder dalam
/app/classes
folder baru mengikuti konvensi penempatan nama Anda. Laravel 4 akan memuat secara otomatis semua kelas / file dalam folder ini. Dengan cara ini tidak perlu menggali file komposer atau menjalankan perintah komposer.Tidak yakin apakah ini praktik terbaik tetapi tentu berhasil.
Jika Anda membuat file sederhana bernama
/app/classes/Helpers/Helper.php
seperti ini:Yang perlu Anda lakukan hanyalah menelepon
Helpers\Helper::helloWorld();
Anda juga bisa menambahkan kelas pembantu ini di
/app/config/app.php
file Anda . Cukup tambahkan sesuatu seperti ini di akhiraliases
array:sumber
composer dump-autoload
- saya lakukan dan menghabiskan 20 menit menggaruk-garuk kepala.Metode helpers.php Laravel adalah menambahkannya ke "file" Anda di composer.json ( https://github.com/laravel/framework/blob/master/composer.json ):
Apa yang saya lakukan adalah membuat kelas kecil (beberapa metode per kelas, satu baris per metode, semuanya diperluas dari sesuatu dan KERING, itulah tujuan saya),
simpan di aplikasi / perpustakaan dan tambahkan ke composer.json:
Menjalankan
Dan kemudian gunakan saja di mana pun Anda butuhkan
Tonton video ini tentang refactoring: http://www.youtube.com/watch?v=DC-pQPq0acs
Omong-omong, saya agak yakin itu hanya contoh, tetapi Anda mungkin tidak perlu penolong untuk memformat tanggal, karena semua tanggal di Laravel adalah contoh Karbon ( https://github.com/briannesbitt/Carbon ) dan ini memiliki banyak metode untuk memformat tanggal dan waktu.
sumber
formatDDMMAAAA()
sebagaistatic
.Anda juga dapat menggunakan
View::share()
bersama dengan penutupan untuk mencapai ini - Saya baru saja memposting tentang ini: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Manfaat tambahan: Anda tidak perlu membuat kelas tambahan dan juga menjaga namespace global tetap bersih.
sumber