Bagaimana cara menggunakan Pimple dengan CakePHP?
CakePHP ialah rangka kerja PHP popular yang telah menjadi pilihan pertama untuk banyak aplikasi web kerana fleksibiliti dan kemudahan penggunaannya. Pimple ialah bekas suntikan kebergantungan PHP mudah yang membantu pembangun mengurus kebergantungan objek mereka dengan lebih baik. Dalam artikel ini, kita akan belajar cara menggunakan Pimple dalam projek CakePHP.
1. Pasang Jerawat
Sangat mudah untuk memasang Jerawat menggunakan Komposer. Buka terminal dalam direktori akar projek dan jalankan arahan berikut:
composer require pimple/pimple
Ini akan memasang bekas suntikan ketergantungan Pimple dalam projek anda.
2. Cipta bekas suntikan kebergantungan
Buat direktori baharu "src/Container" dalam projek CakePHP anda (jika direktori itu belum wujud). Dalam direktori ini, cipta fail baharu yang dipanggil "Container.php" dan isikan kandungannya dengan kod berikut:
namespace AppContainer; use PimpleContainer; class Container extends Container { public function __construct() { // 注册您的依赖项和服务 } }
Dalam pembina kelas ini anda boleh mendaftarkan perkhidmatan atau kebergantungan anda. Contohnya, jika anda ingin mendaftarkan contoh kelas MyService, anda boleh menambah kod berikut pada pembina:
$this->register(new MyService());
Anda juga boleh menggunakan $this['myservice']
untuk mengakses perkhidmatan.
3. Cipta Pengawal
Mari kami andaikan bahawa aplikasi anda memerlukan "Pengawal Pengguna" dengan tindakan berikut:
- indeks - memaparkan semua Senarai pengguna
- tunjukkan - Tunjukkan butiran setiap pengguna
Mula-mula, mari buat direktori baharu “src/Controller” untuk UserController. Dalam direktori ini, cipta fail baharu yang dipanggil "UserController.php" dan isi kandungannya dengan kod berikut:
namespace AppController; use AppContainerContainer; class UserController extends AppController { protected $container; public function __construct(Container $container) { $this->container = $container; parent::__construct(); } public function index() { $userRepository = $this->container['repository.user']; $users = $userRepository->findAll(); $this->set(compact('users')); } public function show($id) { $userRepository = $this->container['repository.user']; $user = $userRepository->findById($id); $this->set(compact('user')); } }
Dalam contoh ini, kami menggunakan bekas sebagai "$userRepository" sebagai kelas UserService Instance disuntik ke dalam "UserController".
4. Perkhidmatan Pendaftaran
Kini, kami mencipta direktori baharu "src/Repository" untuk gudang. Dalam direktori ini, cipta fail baharu yang dipanggil "UserRepository.php" dan isikan kandungannya dengan kod berikut:
namespace AppRepository; use AppModelEntityUser; class UserRepository { protected $entityManager; public function __construct(EntityManager $entityManager) { $this->entityManager = $entityManager; } public function findAll() { return $this->entityManager->getRepository(User::class)->findAll(); } public function findById($id) { return $this->entityManager->getRepository(User::class)->find($id); } }
Repositori ini memerlukan kebergantungan yang dipanggil "EntityManager". Mari tambahkan ini ke dalam bekas Jerawat kami. Dalam fail Container.php kami, tambahkan baris berikut:
$this['repository.user'] = function ($c) { return new AppRepositoryUserRepository($c['entity_manager']); }; $this['entity_manager'] = function ($c) { // 配置和返回Doctrine的EntityManager实例 };
Di sini kami mentakrifkan kelas UserRepository sebagai perkhidmatan yang dipanggil "repository.user" dan menyediakan entiti yang dipanggil "entity_manager" menggunakan perkhidmatan suntikan dependency.
5. Selesai
Sekarang kami telah melengkapkan semua tetapan. Kami kini boleh menggunakan bekas dalam aplikasi kami dan menggunakan suntikan kebergantungan untuk mengurus kebergantungan objek kami.
Dengan menggunakan Pimple, kami boleh menguruskan kebergantungan kami dengan mudah dan mengelakkan gandingan yang ketat antara kelas. Ia menjadikan ujian dan penyelenggaraan kod lebih mudah kerana ia memudahkan untuk menukar kebergantungan.
Perhatikan bahawa apabila menggunakan suntikan kebergantungan, instantiasi langsung dalam kelas harus dielakkan. Sebaliknya, kebergantungan ini harus disuntik ke dalam pembina kelas atau kaedah penetap autoloading untuk ujian unit yang mudah dan pemfaktoran semula kod.
Saya harap artikel ini dapat membantu anda lebih memahami cara menggunakan Pimple untuk suntikan pergantungan dalam CakePHP dan memberikan anda pengalaman pembangunan yang lebih baik.
Atas ialah kandungan terperinci Bagaimana cara menggunakan Pimple dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

CakePHP ialah rangka kerja PHPMVC sumber terbuka yang digunakan secara meluas dalam pembangunan aplikasi web. CakePHP mempunyai banyak ciri dan alatan, termasuk pembina pertanyaan pangkalan data yang berkuasa untuk pangkalan data prestasi interaktif. Pembina pertanyaan ini membolehkan anda melaksanakan pertanyaan SQL menggunakan sintaks berorientasikan objek tanpa perlu menulis pernyataan SQL yang menyusahkan. Artikel ini akan memperkenalkan cara menggunakan pembina pertanyaan pangkalan data dalam CakePHP. Mewujudkan sambungan pangkalan data Sebelum menggunakan pembina pertanyaan pangkalan data, anda perlu membuat sambungan pangkalan data dalam Ca

CakePHP ialah rangka kerja PHP yang berkuasa yang menyediakan pembangun dengan banyak alat dan ciri berguna. Salah satu daripadanya ialah penomboran, yang membantu kami membahagikan sejumlah besar data kepada beberapa halaman, menjadikan penyemakan imbas dan manipulasi lebih mudah. Secara lalai, CakePHP menyediakan beberapa kaedah penomboran asas, tetapi kadangkala anda mungkin perlu mencipta beberapa kaedah penomboran tersuai. Artikel ini akan menunjukkan kepada anda cara membuat penomboran tersuai dalam CakePHP. Langkah 1: Cipta kelas penomboran tersuai Pertama, kita perlu mencipta kelas penomboran tersuai. ini

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?
