<?php session_start();
$date = date("Y-m-d");
include_once './variables.php';
include_once './config.php';
include_once './libs/function.php';
include_once './libs/default.php';
function __autoload($classname){
include("class/class.".$classname.".php");
}
$db = new connectDb;
$autorization = new autorizationAdmin($_POST['name'], $_POST['pass']);
$user = new showLogin;
$today = new today;
$ex = new experement($_POST);
$upload = new downloadImage;
$addpage = new addPageToDb($_POST['title'], $_POST['text'], $_GET['id']);
$add = new addAdmin($_POST['name'], $_POST['pass']);
Собственно, не легче делать вот так
include './class/class.connectDb.php';
include './class/class.autorizationAdmin.php';
include './class/class.showLogin.php';
include './class/class.addAdmin.php';
include './class/class.today.php';
include './class/class.downloadImage.php';
include './class/class.addPageToDb.php';
include './class/class.experement.php';
А классы объявлять в самих файла? Очень интересует как правильно делать?
Спустя 8 минут, 46 секунд (25.07.2011 - 13:43) Nikitian написал(а):
Не проще.
В файлах лишь описание класса, а заздаёте объект этого класса там, где надо, подключая только те файлы, которые нужны. Написали новый класс - нет необходимости его в index.php прописывать, тем более, если он нужен только в одном месте
В файлах лишь описание класса, а заздаёте объект этого класса там, где надо, подключая только те файлы, которые нужны. Написали новый класс - нет необходимости его в index.php прописывать, тем более, если он нужен только в одном месте
Спустя 1 минута, 22 секунды (25.07.2011 - 13:44) m4a1fox написал(а):
Понял! Тогда объявление всех классов происходит в индексе? Я просто уточняю!
Спустя 4 минуты, 25 секунд (25.07.2011 - 13:49) Invis1ble написал(а):
Автолоадер назначить надо, чтобы иметь PROFIT :)
Примерно так:
Примерно так:
function autoload($classname) {
require 'class/class.' . $classname . '.php';
}
spl_autoload_register('autoload');
$db = new connectDb;
Спустя 38 секунд (25.07.2011 - 13:49) m4a1fox написал(а):
Nikitian
Ясно! Если честно то запутался - где его объявлять?
Ясно! Если честно то запутался - где его объявлять?
Спустя 1 минута, 13 секунд (25.07.2011 - 13:51) Invis1ble написал(а):
Смысл в том, насколько я знаю, что файлы будут инклудится только при надобности.
Спустя 1 минута, 16 секунд (25.07.2011 - 13:52) m4a1fox написал(а):
Invis1ble
Цитата |
инклудится только при надобности. |
С этим спорить не буду, вопрос в том, где объявлять класс как new?
Спустя 1 минута, 26 секунд (25.07.2011 - 13:53) Invis1ble написал(а):
m4a1fox
Цитата |
где объявлять класс как new? |
не класс объявлять, а создавать объект. Где надо, там и создаешь

Спустя 2 минуты, 25 секунд (25.07.2011 - 13:56) m4a1fox написал(а):
Invis1ble
Цитата |
не класс объявлять, а создавать объект |
Ну да..... вы меня поняли

Цитата |
Где надо, там и создаешь |
Допустим, а если несколько файлов используют один и тот же класс.... это получается, что надо во всех создавать объект класса?
Спустя 6 минут, 11 секунд (25.07.2011 - 14:02) Invis1ble написал(а):
m4a1fox
Цитата |
а если несколько файлов используют один и тот же класс. |
может, несколько скриптов? если эти скрипты запускаются поотдельности - то естественно, несколько объектов. Хотя, можно и в сессии хранить, наверное, но это извращение имхо. А вообще, зависит от кокретной ситуации.
Спустя 3 минуты, 20 секунд (25.07.2011 - 14:05) m4a1fox написал(а):
тогда можно ли создавать объекты всех классов просто по порядку в index файле?
Спустя 2 минуты, 49 секунд (25.07.2011 - 14:08) Invis1ble написал(а):
m4a1fox
а почему бы и нет? только зачем, я не могу понять? создавай там, где объект действительно нужен, чтоб он не висел в памяти все время работы скрипта.
а почему бы и нет? только зачем, я не могу понять? создавай там, где объект действительно нужен, чтоб он не висел в памяти все время работы скрипта.
Спустя 6 минут, 9 секунд (25.07.2011 - 14:14) m4a1fox написал(а):
Invis1ble
Цитата |
а почему бы и нет? |
Окей! Так и сделаю!
Спустя 3 минуты, 14 секунд (25.07.2011 - 14:17) Invis1ble написал(а):
m4a1fox
Цитата |
Окей! Так и сделаю! |
странный ты, однако.... Я же говорю, что не стоит этого делать, т.к. таким образом ты увеличиваешь нагрузку на сервер занимая лишнюю память незадействованными объектами (которые кстати весят немало, по сравнению с простыми типами данных аля строка или число или даже те же массивы). Впрочем, делай как хочешь, это всего лишь совет.
Спустя 2 минуты, 13 секунд (25.07.2011 - 14:20) ADiel написал(а):
Пора почитать про MVC. http://habrahabr.ru/blogs/php/31270/
Спустя 1 минута, 36 секунд (25.07.2011 - 14:21) Invis1ble написал(а):
ADiel
причем здесь MVC ?
причем здесь MVC ?
Спустя 7 минут, 42 секунды (25.07.2011 - 14:29) m4a1fox написал(а):
Да, мне тоже интересно..... MVC конечно весчь! Наверно имеется ввиду, что следует где-то в этой структуре необходимо обявлять класс....
Спустя 10 минут, 57 секунд (25.07.2011 - 14:40) ADiel написал(а):
Да при том, что m4a1fox не знает, как использовать ооп, потому что нет структуры. Он не знает, как между собой связать классы. MVC как раз для этого и предназначена. Не обязательно именно ее использовать, я имел в виду, что нужно понять как связывать классы в ооп и для чего они предназначены
Спустя 2 минуты, 34 секунды (25.07.2011 - 14:42) m4a1fox написал(а):
ADiel
Цитата |
Он не знает, как между собой связать классы. MVC |
Зря так думаете.... как раз то и знаю.... Уже делал mvc правда на процедурах а не на ООП! Так что в этом плане - вы правы!
Спустя 38 минут, 39 секунд (25.07.2011 - 15:21) VolDroN написал(а):
Вообщем. Что происходит без autoload:
ты пишешь классы, инлудишь всех их, из-за этого время генерации страницы падает, т.к. php надо пройтись по всем классам и скомпилировать их.
Что с autoload:
ты пишешь классы, в том файле где был инклуд классов, стираешь всё и пишешь autoload. всё.
Теперь если php увидит у тебя на любой странице (где подключён файл с autoload) создание объекта какого то класса, то он инклудит файл с его названием. Т.е. при
будет автоматически подключаться файл (если он ещё не был подключён), в зависимости от того что ты прописал в autoload, т.е. например: /class/class.MyClass.php
Что экономит время и ресурсы, т.к. классов обычно будет подключаться меньше чем если бы ты подключал на каждой странице их все.
ты пишешь классы, инлудишь всех их, из-за этого время генерации страницы падает, т.к. php надо пройтись по всем классам и скомпилировать их.
Что с autoload:
ты пишешь классы, в том файле где был инклуд классов, стираешь всё и пишешь autoload. всё.
Теперь если php увидит у тебя на любой странице (где подключён файл с autoload) создание объекта какого то класса, то он инклудит файл с его названием. Т.е. при
$new = new MyClass();
будет автоматически подключаться файл (если он ещё не был подключён), в зависимости от того что ты прописал в autoload, т.е. например: /class/class.MyClass.php
Что экономит время и ресурсы, т.к. классов обычно будет подключаться меньше чем если бы ты подключал на каждой странице их все.
Спустя 1 минута, 54 секунды (25.07.2011 - 15:23) ADiel написал(а):
Цитата |
Уже делал mvc правда на процедурах а не на ООП! |
А я говорю именно о ООП MVC
Спустя 17 минут, 12 секунд (25.07.2011 - 15:40) m4a1fox написал(а):
ADiel
Цитата |
А я говорю именно о ООП MVC |
Тогда 100% правы!