$core->load_class('database');
А потом использовать загруженный класс таким способом:
$core->database->some_method();
или хотя бы так:
$database->some_method();
написал такой вот класс:
class core {
function load_class($classname) { //метод загрузки классов
if (!(class_exists($classname))) { //если класс ещё не объявлен, то объявляем его...
$exists = file_exists('core/'. $classname . '.php');
if (file_exists('core/' . $classname . '.php')) { //проверка файла на наличие
require_once ('core/' . $classname . ".php"); //если существует, то включаем
}else{
echo "Ошибка открытия класса: {$classname}! Возможно файл не сущестует.";// если нету, то выводит ошибку
die();
}
}
}
Только из-за моей неопытности он не работает, точнее я не могу додумать, что здесь надо сделать, чтобы он работал как нужно.
Заранее благодарен.
P.S. Я только учусь...
Спустя 5 минут, 48 секунд (4.06.2011 - 17:30) Гость_lekafe написал(а):
прочитай про __call, __get, __set. Также после инклюда файла создай экземпляр объекта этого класса и сохрани его или в приватный массив или в объект, а потом через __get вытащи .
Спустя 16 минут, 21 секунда (4.06.2011 - 17:46) mazahakax написал(а):
Цитата |
Также после инклюда файла создай экземпляр объекта этого класса и сохрани его или в приватный массив или в объект |
Можно по подробней?
Как работает __set, __get немного разобрался.
Спустя 8 минут, 48 секунд (4.06.2011 - 17:55) Гость_lekafe написал(а):
к примеру есть у тебя фаил db.class.php в нем хранится типа класс db. ну так вот когда ты заинклюдил его то ты должен примерно так сделать $this->objects[$className] = new $className; где $this->objects это свойство класса которое должно быть объявлено как private и иметь тип array.
Спустя 12 минут, 23 секунды (4.06.2011 - 18:07) mazahakax написал(а):
Спасибо! С этим разобрался, а как теперь сделать так, чтобы его можно было бы вызвать в другом скрипте. Т.е. в Index.php
например скрипт вызова классов у меня находится в файле
core/core.php
index.php
например скрипт вызова классов у меня находится в файле
core/core.php
function load_class($classname) { //класс загрузки классов
if (!(class_exists($classname))) { //если класс ещё не объявлен, то объявляем его...
$exists = file_exists('core/'. $classname . '.php');
if (file_exists('core/' . $classname . '.php')) { //проверка файла на наличие
require_once ('core/' . $classname . ".php"); //если существует, то включаем
$this->objects[$classname] = new $classname;
index.php
include_once 'core/core.php'; //подгружаем ядро
$core = new core;
$core->load_class('database'); //загружаем класс