За последние 24 часа нас посетили 18309 программистов и 1598 роботов. Сейчас ищут 1019 программистов ...

Создать экземпляр класса для всего класса

Тема в разделе "PHP для новичков", создана пользователем Юра Шелгунов, 6 янв 2017.

  1. Юра Шелгунов

    Юра Шелгунов Новичок

    С нами с:
    26 авг 2016
    Сообщения:
    14
    Симпатии:
    0
    Все привет, можно ли вызвать экземпляр класса для всего класса ?
    Пример :
    PHP:
    1. <?php
    2.  
    3. class Blog
    4. {
    5.     public function __construct(){
    6.         include __DIR__.'/mysqli.php';
    7.         include 'core/class/template.php';
    8.     }
    9.     // Весь матерьял
    10.     public function index(){
    11.         $mysqli = new Mysqli_blog();
    12.         $view = new Template('view/main.tpl');
    13.  
    14.         $view->main = $mysqli->all(); // Матерьял страницы
    15.  
    16.         $view->title = 'Блог'; // Название модуля
    17.         $view->description= 'Описание страницы'; // Описание страницы
    18.         $view->keywords = 'Ключевые слова'; // Ключивые слова страницы
    19.         $view->display();
    20.     }
    21.     // Матерьял по ID
    22.     public function id(){
    23.         echo 'Матерьял по ID';
    24.     }
    25.     // Матерьял по странице
    26.     public function page(){
    27.      
    28.     }      
    29.     // По категорий
    30.     public function category(){
    31.      
    32.     }  
    33.  
    34.     // Добавить
    35.     public function add(){
    36.      
    37.     }
    38.     // Редактировать
    39.     public function edit(){
    40.      
    41.     }
    42.     // Удалить
    43.     public function delete(){
    44.      
    45.     }          
    46. }
    47. ?>
    Чтоб в каждои функцый не прописывать :
    PHP:
    1. $mysqli = new Mysqli_blog();
    2. $view = new Template('view/main.tpl');
    Можно как то вызвать для всего класса Blog ?
     
    #1 Юра Шелгунов, 6 янв 2017
    Последнее редактирование: 6 янв 2017
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    singleton
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Только не надо делать все классы синглтонами - тогда от классов вообще толку ноль. Синглтон имеет свою область применения.
     
    denis01 нравится это.
  4. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    а вот так тоже должно работать =)
    PHP:
    1. class Blog
    2. {
    3. private $mysqli;
    4. private $view;
    5.  
    6.     public function __construct(){
    7.         include __DIR__.'/mysqli.php';
    8.         include 'core/class/template.php';
    9.   $this->mysqli=new Mysqli_blog();
    10.  $this->view=new Template('view/main.tpl');
    11.    
    12.     }
    13.  
    14.  
    15. //не уверен что тут надо - но как пример пойдет
    16.   function __destruct() {
    17.  $this->view->display();
    18.  }
    19.  
    20.  
    21.  
    22.     // Весь матерьял
    23.     public function index(){
    24.  
    25.         $this->view->main =   $this->mysqli->all(); // Матерьял страницы
    26.           $this->view->title = 'Блог'; // Название модуля
    27.           $this->view->description= 'Описание страницы'; // Описание страницы
    28.           $this->view->keywords = 'Ключевые слова'; // Ключивые слова страницы
    29.        
    30.     }
    31.     // Матерьял по ID
    32.     public function id(){
    33.         echo 'Матерьял по ID';
    34.     }
    35.     // Матерьял по странице
    36.     public function page(){
    37.    
    38.     }    
    39.     // По категорий
    40.     public function category(){
    41.    
    42.     }
    43.     // Добавить
    44.     public function add(){
    45.    
    46.     }
    47.     // Редактировать
    48.     public function edit(){
    49.    
    50.     }
    51.     // Удалить
    52.     public function delete(){
    53.    
    54.     }        
    55. }
     
  5. Юра Шелгунов

    Юра Шелгунов Новичок

    С нами с:
    26 авг 2016
    Сообщения:
    14
    Симпатии:
    0
    Спасибо получилось :
    PHP:
    1. <?php
    2.  
    3. class Blog
    4. {
    5.     public $mysqli;
    6.     public $view;
    7.  
    8.     public function __construct(){
    9.         include __DIR__.'/mysqli.php';
    10.         include 'core/class/template.php';
    11.         $this->mysqli = new Mysqli_blog();
    12.         $this->view = new Template('view/main.tpl');
    13.     }
    14.     function __destruct() {
    15.         $this->view->display();
    16.     }
    17.     // Весь матерьял
    18.     public function index(){
    19.         $this->view->main =   $this->mysqli->all(); // Матерьял страницы
    20.         $this->view->title = 'Блог'; // Название модуля
    21.         $this->view->description= 'Описание страницы'; // Описание страницы
    22.         $this->view->keywords = 'Ключевые слова'; // Ключивые слова страницы
    23.     }
    24.     // Матерьял по ID
    25.     public function id(){
    26.         $this->view->title = 'Название статьй'; // Название модуля
    27.         $this->view->description= 'Описание страницы'; // Описание страницы
    28.         $this->view->keywords = 'Ключевые слова'; // Ключивые слова страницы
    29.     }
    30.     // Матерьял по странице
    31.     public function page(){
    32.      
    33.     }      
    34.     // По категорий
    35.     public function category(){
    36.      
    37.     }  
    38.  
    39.     // Добавить
    40.     public function add(){
    41.      
    42.     }
    43.     // Редактировать
    44.     public function edit(){
    45.      
    46.     }
    47.     // Удалить
    48.     public function delete(){
    49.      
    50.     }          
    51. }
    52.  
    53.  
    54. ?>
     
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    почитайте https://php.ru/manual/language.oop5.visibility.html

    зачем ставите public? вы собираетесь с другого класса обращаться к этой переменной ?? чтото я сомневаюсь ..