Все привет, можно ли вызвать экземпляр класса для всего класса ? Пример : PHP: <?php class Blog { public function __construct(){ include __DIR__.'/mysqli.php'; include 'core/class/template.php'; } // Весь матерьял public function index(){ $mysqli = new Mysqli_blog(); $view = new Template('view/main.tpl'); $view->main = $mysqli->all(); // Матерьял страницы $view->title = 'Блог'; // Название модуля $view->description= 'Описание страницы'; // Описание страницы $view->keywords = 'Ключевые слова'; // Ключивые слова страницы $view->display(); } // Матерьял по ID public function id(){ echo 'Матерьял по ID'; } // Матерьял по странице public function page(){ } // По категорий public function category(){ } // Добавить public function add(){ } // Редактировать public function edit(){ } // Удалить public function delete(){ } } ?> Чтоб в каждои функцый не прописывать : PHP: $mysqli = new Mysqli_blog(); $view = new Template('view/main.tpl'); Можно как то вызвать для всего класса Blog ?
Только не надо делать все классы синглтонами - тогда от классов вообще толку ноль. Синглтон имеет свою область применения.
а вот так тоже должно работать =) PHP: class Blog { private $mysqli; private $view; public function __construct(){ include __DIR__.'/mysqli.php'; include 'core/class/template.php'; $this->mysqli=new Mysqli_blog(); $this->view=new Template('view/main.tpl'); } //не уверен что тут надо - но как пример пойдет function __destruct() { $this->view->display(); } // Весь матерьял public function index(){ $this->view->main = $this->mysqli->all(); // Матерьял страницы $this->view->title = 'Блог'; // Название модуля $this->view->description= 'Описание страницы'; // Описание страницы $this->view->keywords = 'Ключевые слова'; // Ключивые слова страницы } // Матерьял по ID public function id(){ echo 'Матерьял по ID'; } // Матерьял по странице public function page(){ } // По категорий public function category(){ } // Добавить public function add(){ } // Редактировать public function edit(){ } // Удалить public function delete(){ } }
Спасибо получилось : PHP: <?php class Blog { public $mysqli; public $view; public function __construct(){ include __DIR__.'/mysqli.php'; include 'core/class/template.php'; $this->mysqli = new Mysqli_blog(); $this->view = new Template('view/main.tpl'); } function __destruct() { $this->view->display(); } // Весь матерьял public function index(){ $this->view->main = $this->mysqli->all(); // Матерьял страницы $this->view->title = 'Блог'; // Название модуля $this->view->description= 'Описание страницы'; // Описание страницы $this->view->keywords = 'Ключевые слова'; // Ключивые слова страницы } // Матерьял по ID public function id(){ $this->view->title = 'Название статьй'; // Название модуля $this->view->description= 'Описание страницы'; // Описание страницы $this->view->keywords = 'Ключевые слова'; // Ключивые слова страницы } // Матерьял по странице public function page(){ } // По категорий public function category(){ } // Добавить public function add(){ } // Редактировать public function edit(){ } // Удалить public function delete(){ } } ?>
почитайте https://php.ru/manual/language.oop5.visibility.html зачем ставите public? вы собираетесь с другого класса обращаться к этой переменной ?? чтото я сомневаюсь ..