Bạn luôn có thể sử dụng vùng chứa Di.
Khi bạn đăng ký một thành phần trong Di nó có sẵn trong bộ điều khiển bằng phương pháp ma thuật. Ví dụ:
// Bootstrap
$configFile = ROOT_PATH . '/app/config/config.ini';
// Create the new object
$config = new \Phalcon\Config\Adapter\Ini($configFile);
// Store it in the Di container
$this->di->setShared('config', $config);
và trong điều khiển của bạn nó cũng đơn giản như:
$config = $this->config;
Nếu bạn tạo một lớp điều khiển cơ bản, bạn có thể vượt qua các đối tượng trong giao diện, nếu cần thiết như vậy:
$this->view->setVar('config', $this->config);
Cuối cùng hộp chứa Di cũng có thể hoạt động như một cơ quan đăng ký, nơi bạn lưu trữ các mục bạn có thể muốn sử dụng trong ứng dụng của mình.
Để biết ví dụ về khởi động và truy cập các đối tượng trong bộ điều khiển, hãy xem kho lưu trữ phalcon/website. Nó thực hiện các mẫu bootstrapping và bộ điều khiển cơ sở trong số những thứ khác.
Nguồn
2012-11-02 01:49:31
Cảm ơn vì điều này! Hoạt động thực sự tốt – Tim
Tôi biết tôi là một chút muộn, nhưng tại sao trong kịch bản này bạn sẽ sử dụng $ di-> set() trên $ di-> setShared()? – Mechzeit
@Spinkzeit 'setShared' có thể là sử dụng tốt hơn ở đây - bạn đúng - vì' $ config' thực sự được sử dụng trong suốt ứng dụng và cần phải là một đối tượng được chia sẻ. Tôi đã thay đổi câu trả lời của tôi cho phù hợp, cảm ơn! –