PHP의 배열 만 포함 된 포함 파일을 활용하는 가장 좋은 방법
문제
Kohana의 구성 파일은 다음과 같습니다. 데이터베이스 구성 파일의 예는 다음과 같습니다 (단순화)
return array(
'dbhost' => 'localhost',
'user' => 'Tom_Jones'
);
연결 세부 사항을 원하는 CMS도 있습니다. CMS는 다른 사용자를 사용하는 동안 (더 많은 권한이있는)이 파일을 포함시키는 가장 좋은 방법을 알고 싶습니다.
나는 아직 우아한 솔루션에 대해 생각하지 않았으며 아직 코 하나 주변에서 그것이 어떻게 그것을하는지 알지 못했습니다. 금요일 늦은 금요일이므로 저를 제외한 모든 사람들에게 정말 분명 할 것입니다.
업데이트
내 사과, 나는 이것이 사용중인 것을 포함하는 것을 잊었다 코 하나 3!
해결책
Kohana v3에서 Kohana_Config_Reader
클래스, 메소드 load()
:
$config = Arr::merge($config, require $file);
require $file
구성 파일에 배열을로드하는 데 사용됩니다.
다른 팁
Kohana를 다운로드했는데 예제처럼 보이는 파일을 파일 할 수 없었지만 현재 버전을 사용하는 경우 다음과 같은 구성 파일을 용도 변경할 수 있습니다.
<?php
// Your script
define('SYSPATH', 'true'); // So Kohana doesn't kill our script
$config = array();
include('path/to/system/config/database.php');
echo $config['default']['connection']['user']; // Echos database user
?>
http://docs.php.net/function.include 말 :
또한 포함 된 파일에서 값을 반환 할 수 있습니다. 정상적인 기능으로 포함 된 통화의 값을 취할 수 있습니다.
예제 코드를 가져 가자
<?php // test2.php
return array(
'dbhost' => 'localhost',
'user' => 'Tom_Jones'
);
그리고 test2.php를 포함하는 스크립트
<?php
$cfg = include 'test2.php';
if ( !is_array($cfg) ) {
// ... add useful error handling here ...
}
// you might want to test the structure of $cfg
// before accessing specific elements
echo $cfg['dbhost'];
인쇄물 localhost
.
그만큼 선적 서류 비치 해당 구성 파일에 액세스하는 방법에 대한 기본 정보가 포함되어 있습니다. 따라서 다음 파일에 다음이있는 경우 db.php
안에 application/config
:
<?php defined('SYSPATH') or die('No direct script access.');
return array(
'host' => 'localhost',
'user' => 'Tom_Jones'
);
다음과 같이 액세스 할 수 있습니다.
$options = Kohana::config('db');
echo $options['user'];
echo $options['host'];
또는 이렇게 :
echo Kohana::config('db.user');
echo Kohana::config('db.host');
또는 이렇게 :
echo Kohana::config('db')->user;
echo Kohana::config('db')->host;
제휴하지 않습니다 StackOverflow