За последнюю неделю опубликовано 29 новых материалов.
Инструкция новичку Путеводитель по форуму Прокси для Telegram Показать подсказки , это бомба!

Наследование классов php

  • Не рекламируйте тут сервисы или сайты, тем более со своими реферальными ссылками
  • Поучаствуй (в качестве покупателя) в любых пяти совместных покупках (кроме завершённых и "Моментальных") и получи группу "Новичок" навсегда -> ссылка на раздел
  • Получай до 480 рублей за каждого приглашенного пользователя!
    представляем Вам очередное расширение партнерской программы, подробности описаны тут -> ссылка
  • 90% материалов доступно к скачиванию после простой регистрации!
    Если же ты хочешь скачивать материалы без требования оставлять отзывы то получи группу "Новичок", 10 способов повышения описаны тут -> ссылка
  • К сожалению количество битых ссылок растет и мы уже не можем их оперативно восстанавливать поэтому просим помощи у каждого нашего пользователя.
    С сегодняшнего дня, за каждую восстановленную ссылку мы заплатим Вам.
    Подробнее тут -> ссылка
  • Перенесем твои заслуги с другого ресурса!
    Мы понимаем как сложно прокачивать аккаунты на форумах, вроде раскачал аккаунт, а тут появляется ресурс в 100 раз круче но тоже с системой прокачки и снова качать аккаунт...
    Предлагаем вам перенести Ваши заслуги на другом подобном ресурсе к нам.
    Подробности описаны тут -> ссылка
  • Вы можете получать по 2.5% с каждой покупки и продажи на маркете! Подробности в теме Партнёрская программа

Alexey

Участник
Разработчик
23 Май 2016
15
8
110
26
Ребят нужна ваша помощь что я пытаюсь сделать:
В index.php подключаю autoloader
Далее регистрирую классы


require_once(ROOT . '/system/engine/registry.php');
PHP:
<?php
final class Registry {
   private $data = array();

   public function get($key) {
       return (isset($this->data[$key]) ? $this->data[$key] : null);
   }

   public function set($key, $value) {
       $this->data[$key] = $value;
   }

   public function has($key) {
       return isset($this->data[$key]);
   }
}
require_once(ROOT . '/system/engine/loader.php');
PHP:
<?php
final class Loader {

   public function view($template) {

       $file = ROOT . $template;

       if (file_exists($file)) {
           

           require($file);

       
       } else {
           trigger_error('Error: Could not load template ' . $file . '!');
           exit();
       }
       
       
   }

}
require_once(ROOT . '/system/engine/controller.php');
PHP:
<?php
abstract class Controller {
   protected $registry;

   public function __construct($registry) {
       $this->registry = $registry;
   }

   public function __get($key) {
       return $this->registry->get($key);
   }

   public function __set($key, $value) {
       $this->registry->set($key, $value);
   }
}
$registry = new Registry();
$loader = new Loader($registry);
$registry->set('load', $loader);



Затем регистрирую класс Mail:
PHP:
class Mail extends Controller{
   public function actionIndex()
       {
           $this->load->view('/templates/views/Mail.php');       
       } 
}
Ну и получаю ошибку:
PHP:
Warning: Missing argument 1 for Controller::__construct(), called in /var/www/u0157199/data/www/vinstrok.ru/system/Router.php on line 44 and defined in /var/www/u0157199/data/www/vinstrok.ru/system/engine/controller.php on line 5

Notice: Undefined variable: registry in /var/www/u0157199/data/www/vinstrok.ru/system/engine/controller.php on line 6

Fatal error: Call to a member function get() on null in /var/www/u0157199/data/www/vinstrok.ru/system/engine/controller.php on line 10
Я понимаю что в Controller скорее всего нужно передать данные $register но как это сделать пока не могу догадаться...
 

Alexey

Участник
Разработчик
23 Май 2016
15
8
110
26
Проблема не актульна решение довольно простое аж самому смешно
При подключение контроллера Mail было:
PHP:
$controllerObject = new Mail();
Cтало:
PHP:
$controllerObject = new Mail($registry);
И всё заработало)
 

Привет!

Мы группа людей которые решили помочь другим в решении их проблем, а так же пользователям с поиском самых свежих и качественных инфопродуктов. За 4 с небольшим месяца мы создали этот форум на который заходят ежедневно тысячи человек и посещаемость постоянно растёт. Мы создали панель лицензирования для защиты PHP скриптов от воровства и SEO панель для мониторинга наших сайтов и выбора верной стратегии их развития. Мы надеемся что то что мы создали пригодится Вам и возможно Вы поможете нам развиваться и совершенствоваться вместе с Вами.

Статистика форума

Темы
384.694
Сообщения
428.050
Пользователи
59.384
Новый пользователь
venomouskiss

Приложения форума для iOS и Android


У ркн там нет власти ;)
Приватные разговоры
Помощь Пользователи
    Вы не присоединились ни к одной комнате.