2016-02-21 19 views
5

Trong dự án của tôi, tôi đã tạo một thư mục "lõi" chứa một số lớp và phương thức nhất định được gọi là trong suốt bộ điều khiển. Tôi đã xác định một tham số cấu hình trong tệp bootstrap của mình như vậy:Tôi làm cách nào để truy cập dữ liệu cấu hình Phalcon trong thư viện bên ngoài?

private function loadConfig() 
{ 
    // Bootstrap 
    $configFile = __DIR__ . '/../config/config.json'; 

    // Create the new object 
    $config = json_decode (file_get_contents ($configFile)); 

    // Store it in the Di container 
    $this->di->setShared ('config', $config); 
} 

Tôi muốn có thể truy cập vào các giá trị cấu hình này trong các lớp "lõi" của tôi.

Tôi phải làm gì?

Trả lời

5

Có một số cách để có được một tham chiếu đến các dịch vụ mà bạn đăng ký với cơ phụ thuộc Injector. Tuy nhiên, để chắc chắn rằng bạn đang nhận được cùng một ví dụ của dịch vụ và không phải là một mới được tạo một, sau đó bạn cần phải sử dụng các phương pháp getShared:

$this->getDI()->getShared('config'); 

Làm như vậy đảm bảo bạn đang nhận được hiệu suất cao nhất có thể, và giảm thiểu Mức chiếm dụng bộ nhớ.

+1

Điều đó hoạt động như một sự quyến rũ. Cảm ơn! –

2

trong lớp điều khiển của bạn, hãy gọi cấu hình bởi

$this->config 
1

Bạn có thể truy cập vào các dịch vụ từ bất kỳ lớp học mà thực hiện Phalcon\Di\Injectable

  • Phalcon\Mvc\Controller
  • Phalcon\Mvc\User\Component
  • Phalcon\Mvc\User\Module
  • Phalcon\Mvc\User\Plugin
  • vv

Ví dụ:

$this->getDI()->get('config'); 

// The same as $this->config 
$this->getDI()->getShared('config'); 
Các vấn đề liên quan