Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 05:41:00

Страниц: [1]
Печать
Автор Тема: Автоподключение всех классов  (Прочитано 240 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Pasha    ↓ 
30 Октябрь, 2011, 11:07:53
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 7
Сообщений: 1028
Сила слова: 0.68

Привет пыха, давно тут небыл, думал что больше не вернусь к php, решил достать книжку Котерова PHP5, прочитать про ООП... intro :)
 
Суть такая - есть общий класс и еще куча других классов. Нужно сделать чтобы все методы других классов были видимыми для одного общего. Я прочитал про __autoload, поискал на форуме.
 
Прочитал про http://www.ircit.ru/company/blog/ahs/50.php
Считаю быдло решением, т.к зачем подключать все библиотеки? Или можно обойтись массивом и дергать только те файлы-библиотек которые нам нужны? Да, как их потом "подключить" в классе? Через конструктор?
 
И пользуясь случаем, в одном топике нашел пост от NRG.
 
<?php
   myClass::myMethod();
   // или так
   $c = new myClass;
   $c->myMethod();
 
?>
//но, эта принципиально две разные вещи

почему это принципиально две разные вещи?
 
Cпасибо!
« Последнее редактирование: 30 Октябрь, 2011, 11:07:53 от Pasha » Записан

r.i.p. puppy
Frozzeg    ↓ 
30 Октябрь, 2011, 10:58:31 , спустя
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5501
Сила слова: 1.67

первое это видимо статический метод
 
если конечно в пехопе есть такое понятие как статический ))
Записан
Pasha    ↓ 
30 Октябрь, 2011, 11:06:18 , спустя 7 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 7
Сообщений: 1028
Сила слова: 0.68

Я кашу наверно написал. Имел ввиду что не круто будет подключать так...
 
require_once('libs/Mail.php');
require_once('libs/Smarty.php');
...
require_once('libs/Users.php');
 
тут и прибегаем к __autoload ? Правильно?
 
Хорошо, как правильно "инициализировать" все эти классы в одном? В конструкторе? Чтобы потом в общем классе обращаться к $this->smarty->... , $this->mail->... , $this->users->...
Записан

r.i.p. puppy
phpdude    ↓ 
30 Октябрь, 2011, 11:13:26 , спустя 7 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

Pasha, блядь вот тяжело чтоли докумнетацию прочитать к функции про которую ты тут размахиваешь губами?
Спустя 21 секунду добавил
там все отлично написано. вот прочитаешь доку и поймешь что все что ты тут написал кроме названия одной функции - полная хуйня
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
NRG    ↓ 
30 Октябрь, 2011, 11:51:12 , спустя 37 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81


И пользуясь случаем, в одном топике нашел пост от NRG.
 
<?php
   myClass::myMethod();
   // или так
   $c = new myClass;
   $c->myMethod();
 
?>
//но, эта принципиально две разные вещи

почему это принципиально две разные вещи?
 
Cпасибо!
это вопрос по самым основам, не поленись, прочитай чуток больше чем intro.
Спустя 56 секунд добавил
ну и как уже подметил наш ахуенный дуд, читай про автолоад.
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
master    ↓ 
31 Октябрь, 2011, 08:33:49 , спустя 20 часов 42 минуты 37 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

Хорошо, как правильно "инициализировать" все эти классы в одном? В конструкторе? Чтобы потом в общем классе обращаться к $this->smarty->... , $this->mail->... , $this->users->...

в контроллере, бывает, нужно обратиться к модели:
PHP

class Controller {
    function __get($name){
        $t = substr($name, 0, 1);
        if ($t >= 'A' and $t <= 'Z'){ // хаваем только $name с большой буквы
            return $this->$name = new $name;
        } else {
            trigger_error('Required undefined model field: '.$name, E_USER_NOTICE);
        }
    }
}
 

class BlogController extends Controller {
  function index(){
    $records = $this->BlogModel->last(10); // обращаемся к магическому методу __get
    return compact('records'); // передаём в шаблонизатор
  }
}
« Последнее редактирование: 31 Октябрь, 2011, 08:33:49 от master » Записан

Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd