[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не вызывается функция
jumper_dev
Всем добрый день, помогите разобраться.
Вопрос вот в чем когда я вызываю функцию type_boot(CONFIG) она не реагирует, хотя должна выводить массив с данными. Или может я что то путаю помогите разобраться.

File: index.php

define('PATH_ROOT', dirname(__FILE__));

header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

require_once PATH_ROOT . '/includes/load.php';

$load = boot_type(CONFIG);
print_r($load);


File: load.php

defined('PATH_ROOT') or exit('Access Denied');


define('CONFIG', 0);


define('DATABASE', 1);

/**
* Собираем массив из констант
*
@return array
**/

function arr_boot() {
return array(CONFIG, DATABASE);
}
/**
* Путь до конфигурационного файла.
*
@return string
**/

function path_settings() {
$path = file_exists(dirname(__FILE__)) ? dirname(__FILE__) : '';
return "{$path}/settings/";
}
/**
* Подключение конфигурационного файла.
* Разбиение его на массив.
*
@return array $conf
**/

function settings() {
$conf = array();
require_once file_exists(path_settings().'settings.php') ? path_settings().'settings.php' : exit('Critical error');

if (isset($url_db) && $url_db !== 'scheme://user:pass@localhost/database') {
$conf['DB'] = parse_url($url_db);
}
return $conf;

}
/**
* Функция подгрузки "библиотек"
**/

function boot_type($type) {
$arr = arr_boot();
foreach ($arr as $val) {
$proces = $val == $type ? $val : null;
switch($proces) {
case CONFIG:
settings();
break;
case DATABASE:
require_once PATH_ROOT . '/includes/class/class.mysql.php';
break;
default: unset($proces); break;
}
}
}





Спустя 6 минут, 55 секунд (4.01.2011 - 13:44) Michael написал(а):
case CONFIG:
return settings();

Спустя 4 минуты, 24 секунды (4.01.2011 - 13:48) jumper_dev написал(а):
Michael
При вызове
 boot_type(DATABASE) 

Выходит тот же массив

Спустя 15 минут, 18 секунд (4.01.2011 - 14:04) Michael написал(а):
я вообще не понимаю что ты делаешь. Зачем этот промежуточный цикл? В любом случае сам у себя в коде проверяй по какому пути идет обработка - наставь echo, и чему данные равны по ходу дела.

Спустя 6 минут, 27 секунд (4.01.2011 - 14:10) Invis1ble написал(а):
jumper_dev
судя по всему, у тебя $proces будет равен null, поэтому будет выполняться default в switch )

Спустя 23 минуты, 47 секунд (4.01.2011 - 14:34) jumper_dev написал(а):
Invis1ble
Ты прав, что то я там напутал...

Спустя 37 минут, 40 секунд (4.01.2011 - 15:11) jumper_dev написал(а):
Изменил значение констант и все встало на свои места. =)

define('CONFIG', 1);

define('DATABASE', 2);

Массив стал таким
array('0' => '1', '1' => '2');

Спустя 15 минут, 43 секунды (4.01.2011 - 15:27) Invis1ble написал(а):
jumper_dev
имхо, у тебя там вобще логика конкретно хромает.... можно все гораздо проще и понятней реализовать

Спустя 4 минуты, 4 секунды (4.01.2011 - 15:31) jumper_dev написал(а):
Очень интересно посмотреть. Есть пример?

Спустя 12 минут, 49 секунд (4.01.2011 - 15:44) Invis1ble написал(а):
jumper_dev
пример чего? Если скрипт load.php реализует подгрузку конфига, то я использую совсем другую реализацию... Может я конечно что-то недопонимаю (цимус какой-то), но по-моему load.php - это какой-то изврат, хотя чесно говоря я не особо вникал..
Скажи чесно, ты сам писал это?

Спустя 13 минут, 44 секунды (4.01.2011 - 15:58) jumper_dev написал(а):
Конечно сам.
Load.php будет подгружать в зависимости что ты хочешь загрузить. (Имеется ввиду "библиотеки") Например "Класс Базы данных", "Контролер", "Класс шаблонизатора" : )))

Спустя 19 минут, 2 секунды (4.01.2011 - 16:17) Invis1ble написал(а):
jumper_dev
А смысл всех этих танцев, если ты все равно передаешь в функцию загрузки аргумент (то, что хочешь загрузить) ??
Если интересует автоматическая подгрузка, то имхо тебе нужно почитать например про функцию spl_autoload_register()

Спустя 7 минут, 49 секунд (4.01.2011 - 16:25) jumper_dev написал(а):
Спасибо, почитаем.

Спустя 5 минут, 49 секунд (4.01.2011 - 16:30) Invis1ble написал(а):
jumper_dev
вот пример для тебя набросал:
index.php
<?php

function
autoload($classname)
{
include $classname . '.php';
}

spl_autoload_register('autoload');

Hello::test('Hello, World!');

Hello.php
<?php

class
Hello
{
public static function test($string)
{
echo $string;
}
}


_____________
Как повысить рождаемость на планете? - Заставить Microsoft выпускать презервативы!
Разъяренный Админ не нервно моргает, а материт вас, используя двоичный код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.