За последние 24 часа нас посетили 31044 программиста и 1428 роботов. Сейчас ищут 835 программистов ...

Короче это связано с ООП. Подскажите плиз.

Тема в разделе "PHP для новичков", создана пользователем askanim, 4 июн 2016.

  1. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    PHP:
    1. namespace System\Http\Router;
    2.  
    3. use System\Http\Router\Routes;
    4. class Rout extends Routes{
    5.     protected $routes = new Routes('SosedMarket'); // Вот так не правильно... И не могу понять как сделать чтобы было правильно... Подскажите пожалуйста.
    6.  
    7.     public function __construct($direct, $link)
    8.     {
    9.         $this->addRout($direct,$link);
    10.     }
    11.  
    12.     protected function addRout($direct, $link) {
    13.         $this->routes->addRouts($direct,$link);
    14.     }
    15.     protected function getRout () {
    16.         $this->routes
    17.         ->getRouts();
    18.     }
    19. }
    Но может кто скажет что делаю фигню... Подскажите плиз тогда как лучше реализовать. Я хочу реализовать доступ объекта, на все функции Класса. По одной переменной. Статическая функция мне не подходит.
    --- Добавлено ---
    Так вопрос закрыт я идиот... Пока писал и отправлял меня осенило. И я сделал вот так! :D :D :D

    PHP:
    1. <?php
    2. /**
    3. * Created by PhpStorm.
    4. * User: Леонид
    5. * Date: 01.05.2016
    6. * Time: 19:08
    7. */
    8.  
    9. namespace System\Http\Router;
    10.  
    11. use System\Http\Router\Routes;
    12. class Rout {
    13.     protected $routes;
    14.  
    15.     public function __construct($routName)
    16.     {
    17.         $this->routes = new Routes($routName);
    18.     }
    19.  
    20.     public function addRout($direct, $link) {
    21.         $this->routes
    22.             ->addRouts($direct,$link);
    23.     }
    24.     protected function getRout () {
    25.         $this->routes
    26.             ->getRouts();
    27.     }
    28. }
     
    #1 askanim, 4 июн 2016
    Последнее редактирование: 4 июн 2016
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ещё бы адекватно темы научился называть.
     
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @askanim, может я что-то не так понял, но выше в коде тебе не нужно это свойство класса, при наследовании ты можешь обращаться к функциям родителя через $this
    Например:
    PHP:
    1. class Rout extends Routes {
    2.  
    3.     public function addRout() {
    4.         $this->addRouts();
    5.     }
    6.  
    7.     public function getRout() {
    8.         $this->getRouts();
    9.     }
    10.  
    11. }
    PHP:
    1. class Routes {
    2.  
    3.     protected function addRouts() {
    4.         echo "addRouts";
    5.     }
    6.  
    7.     protected function getRouts() {
    8.         echo "getRouts";
    9.     }
    10.  
    11. }
     
  4. NoMonster

    NoMonster Новичок

    С нами с:
    7 май 2016
    Сообщения:
    38
    Симпатии:
    1
    зачем вы родитель такой же и переменной запихиваеш омг
     
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    WHAT?

    Прошу прощения, но там надо было написать без наследования... Я его убрал. Мне нужно было без наследования.
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Он глухонемой, если я правильно помню. Из-за этого по другому формулирует мысли, бывает, что их невозможно понять. Так что просто уточняй, если что-то не понятно, что он пишет.
     
  7. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    А понятно... Хорошо...

    Прошу прощения... За грубость... Могли бы вы разъяснить, мне, что я не правильно сделал по вашему? Я не совсем понял ваше замечание.
     
  8. NoMonster

    NoMonster Новичок

    С нами с:
    7 май 2016
    Сообщения:
    38
    Симпатии:
    1
    @askanim убрать переменую что вы его присвоили класс. Его можно вызвать через $this или parent
     
  9. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Там нет наследования... Вы уверены, что вы поняли меня правильно... Ну или я вас так же не понимаю... Я же подписал внизу, что у меня роутер не будет не откуда наследоваться. Это отдельный самостоятельный класс. Я вас понял, не зачем делать вызов тех переменных которые наследуются, данной переменной в классе от которого идёт наследование не существует, это во первых и она должна быть в протектеде. Чтобы из вне класса её не могли изменить. Чтобы не полетела структура моя. Ну и как я написал, я убрал наследование. Опять же с точки зрения безопасности.
     
  10. NoMonster

    NoMonster Новичок

    С нами с:
    7 май 2016
    Сообщения:
    38
    Симпатии:
    1
    вы исползывали родитель класса Routes, но и еше вызываете класс Routes в переменную 2 раза за такой класс. Так зачем?
    --- Добавлено ---
    @askanim не смотрел ниже =)