| Code Coverage
| Classes and Traits | Functions and Methods | Lines
Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | CRAP |  | 86.67% | 13 / 15
LoggerConfigurationAdapterPHP |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | 6.09 |  | 86.67% | 13 / 15
convert($url) |  | 0.00% | 0 / 1 | 6.09 |  | 86.67% | 13 / 15

1 | <?php
2 | /**
3 | * Licensed to the Apache Software Foundation (ASF) under one or more
4 | * contributor license agreements. See the NOTICE file distributed with
5 | * this work for additional information regarding copyright ownership.
6 | * The ASF licenses this file to You under the Apache License, Version 2.0
7 | * (the "License"); you may not use this file except in compliance with
8 | * the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * @package log4php
19 | */
20 |
21 | /**
22 | * Converts PHP configuration files to a PHP array.
23 | *
24 | * The file should only hold the PHP config array preceded by "return".
25 | *
26 | * Example PHP config file:
27 | * <code>
28 | * <?php
29 | * return array(
30 | * 'rootLogger' => array(
31 | * 'level' => 'info',
32 | * 'appenders' => array('default')
33 | * ),
34 | * 'appenders' => array(
35 | * 'default' => array(
36 | * 'class' => 'LoggerAppenderEcho',
37 | * 'layout' => array(
38 | * 'class' => 'LoggerLayoutSimple'
39 | * )
40 | * )
41 | * )
42 | * )
43 | * ?>
44 | * </code>
45 | *
46 | * @package log4php
47 | * @subpackage configurators
48 | * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
49 | * @version $Revision: 1343601 $
50 | * @since 2.2
51 | */
52 | class LoggerConfigurationAdapterPHP implements LoggerConfigurationAdapter
53 | {
54 | public function convert($url) {
55 | if (!file_exists($url)) {
56 | throw new LoggerException("File [$url] does not exist.");
57 | }
58 |
59 | // Load the config file
60 | $data = @file_get_contents($url);
61 | if ($data === false) {
62 | $error = error_get_last();
63 | throw new LoggerException("Error loading config file: {$error['message']}");
64 | }
65 |
66 | $config = @eval('?>' . $data);
67 |
68 | if ($config === false) {
69 | $error = error_get_last();
70 | throw new LoggerException("Error parsing configuration: " . $error['message']);
71 | }
72 |
73 | if (empty($config)) {
74 | throw new LoggerException("Invalid configuration: empty configuration array.");
75 | }
76 |
77 | if (!is_array($config)) {
78 | throw new LoggerException("Invalid configuration: not an array.");
79 | }
80 |
81 | return $config;
82 | }
83 | }
84 |