PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (7): « 1 2 3 4 [5] 6 7 »
Найдено сообщений: 98
juramaj
Отправлено: 04 Февраля, 2015 - 14:58:53 • Тема: вывод страницы cURL • Форум: Вопросы новичков
Ответов: 2 Просмотров: 144
Привет всем форумчанам. Возник такой вопросик. Я вывожу с помощью curl страницу другого сайта у себя на сайте.(код приведен ниже) Подскажите как мне вывести например не всю страницу, а только определенный блок? Где можно об этом почитать. Заранее спасибо.
juramaj
Отправлено: 04 Февраля, 2015 - 12:43:57 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: juramaj
надеюсь вы поняли полностю суть автолодинга в ПХП
Кажись понял. Теперь нужно по больше практики чтобы закрепить знания. Спасибо за помощь.
juramaj
Отправлено: 02 Февраля, 2015 - 16:52:00 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: juramaj пишет: $controller = new $controller_name;
ок почти поняли, но счас что вот этот код делает
Так я же его закомментировал. Дальше не могу понять, что нужно.
(Добавление)
Как по мне так логика должна выглядеть так:
С URL берем 1-й элемент тоесть это будет у меня контроллер
Потом к этому всему прибавляю
Потом подключается наша ф-ция autoload, и мы делаем следующее
Вот как то так. Правильно или нет?
juramaj
Отправлено: 02 Февраля, 2015 - 16:15:47 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: juramaj
слово автолоад какбы намекает что запуск происходит автоматически. тоесть если убрать проверку файла и инклуд, то после создания екземпляра класса контролера функция автолодинга запуститься автоматически. в качестве аргумента будет передано название класса (в даном случае контроллера), вот там и стоит подключать файл.
Написал вот так, ничего не сработало. Где ошибка? Не пойму.
PHP:
скопировать код в буфер обмена
class Route
{
static function start( )
{
$controller_name = 'Main' ;
$action_name = 'index' ;
$routes = explode ( '/' , $_SERVER [ 'REQUEST_URI' ] ) ; if ( ! empty ( $routes [ 1
] ) ) { $controller_name = $routes [ 1] ;
}
// if ( !empty($routes[2])){
// $action_name = $routes[2];
// }
// $model_name = 'Model'.$controller_name;
$controller_name = 'Controller' . $controller_name ;
// $action_name = 'action'.$action_name;
// $model_file = strtolower($model_name).'.php';
// $model_path = "application/models/".$model_file;
// if(file_exists($model_path)){
// spl_autoload_register(Route::loaderModel);
// include "application/models/".$model_file;
// }
// $controller_file = strtolower($controller_name).'.php';
// $controller_path = "application/controllers/".$controller_file;
// if(file_exists($controller_path)){
// include "application/controllers/".$controller_file;
// } else {
// Route::ErrorPage404();
// }
// $controller = new $controller_name;
// $action = $action_name;
// if(method_exists($controller, $action)){
// $controller->$action();
// } else {
// Route::ErrorPage404();
// }
}
}
И файл autoload.php
juramaj
Отправлено: 02 Февраля, 2015 - 13:14:13 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
GoDr пишет: esterio , да хватит издеваться над всеми
Если файл, который располагается по адресу $controller_path существует
if(file_exists($controller_path)){
То мы закомментированием (отключим) строку где он должен был подключиться
// include "application/controllers/".$controller_file;
Если не существует
} else {
То мы покажем вам 404
Route::ErrorPage404();
Так а как тогда написать сам функцию autoload? Чтобы всё автоматически подгружалось.
juramaj
Отправлено: 30 Января, 2015 - 19:20:38 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: juramaj пишет: if(file_exists($controller_path)){
// include "application/controllers/".$controller_file;
} else {
Route::ErrorPage404();
}
поймите что здесь происходит и будет понимание.
Я кончено могу вам сказать полностю что зделать, но считаю плохой практикой ибо на понимание что происходит как раз и учаться.
Хорошо, сейчас еще подумаю над этим вопросом. Если что то к вам обращусь с теми вариантами что придут мне в голову.
juramaj
Отправлено: 30 Января, 2015 - 17:22:32 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: смотрте если есть include то мы явно обьявляем класс, значит автозагрузчик не сработает, а если убрать что будет тогда думаю можно догадатся
Вы не можете помочь мне переписать маршрутизатор. Я новичок в mvc и мне бы хоть разок увидеть как это всё реализуется и всё. Вот код:
PHP:
скопировать код в буфер обмена
class Route
{
static function start( )
{
$controller_name = 'Main' ;
$action_name = 'index' ;
$routes = explode ( '/' , $_SERVER [ 'REQUEST_URI' ] ) ; if ( ! empty ( $routes [ 1
] ) ) { $controller_name = $routes [ 1] ;
}
if ( ! empty ( $routes [ 2
] ) ) { $action_name = $routes [ 2] ;
}
$model_name = 'Model' . $controller_name ;
$controller_name = 'Controller' . $controller_name ;
$action_name = 'action' . $action_name ;
$model_path = "application/models/" . $model_file ;
// spl_autoload_register(Route::loaderModel);
// include "application/models/".$model_file;
}
$controller_file = strtolower ( $controller_name ) . '.php' ; $controller_path = "application/controllers/" . $controller_file ;
// include "application/controllers/".$controller_file;
} else {
Route:: ErrorPage404 ( ) ;
}
$controller = new $controller_name ;
$action = $action_name ;
$controller -> $action ( ) ;
} else {
Route:: ErrorPage404 ( ) ;
}
}
static function ErrorPage404( )
{
echo "<img src='images/404.png' alt='404'>" ;
}
}
(Добавление)
esterio пишет: смотрте если есть include то мы явно обьявляем класс, значит автозагрузчик не сработает, а если убрать что будет тогда думаю можно догадатся
когда я убрал include то меня перебросило на 404
juramaj
Отправлено: 30 Января, 2015 - 17:03:13 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
[quote=esterio]GoDr
Извините но вы ошибаетесь
1. зачем проверять
[quote=GoDr] if (!class_exists($class_name)) {
require_once(_PATH_ROOT . '/class/' . $class_name . '.php');
}[/quote]
если автолоадер не будет вызван если клас обьявлен
2. пример с довома класамми и со статикой не самый удачный
juramaj
Чтобы не запутивать вас обьясню коротко.[quote]
Теорию то я понял, а вот как оно на практике реализуется именно с моим случаем маршрутизатор? Как избавится от тех include, а чтобы всё автоматически подгружалось не могу понять.
juramaj
Отправлено: 30 Января, 2015 - 14:31:53 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: juramaj пишет: Как избавится в маршрутизаторе на mvc от include, а вместо этого реализовать функцию autoload для загрузки классов. Вот мой маршрутизатор:
Autoload работает когда создаеться екземпляр класа который не подключен. Далее сами
Мозг взрывается, не могу понять. У меня же в маршрутизаторе берутся переменные с адресной строки, не могу понять как мне их подгрузить(файлы в которых есть эти классы) не используя include. Может хоть намекнёте?
juramaj
Отправлено: 30 Января, 2015 - 13:56:45 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
Как избавится в маршрутизаторе на mvc от include, а вместо этого реализовать функцию autoload для загрузки классов. Вот мой маршрутизатор:
PHP:
скопировать код в буфер обмена
class Route
{
static function start( )
{
$controller_name = 'Main' ;
$action_name = 'index' ;
$routes = explode ( '/' , $_SERVER [ 'REQUEST_URI' ] ) ; if ( ! empty ( $routes [ 1
] ) ) { $controller_name = $routes [ 1] ;
}
if ( ! empty ( $routes [ 2
] ) ) { $action_name = $routes [ 2] ;
}
$model_name = 'Model' . $controller_name ;
$controller_name = 'Controller' . $controller_name ;
$action_name = 'action' . $action_name ;
$model_path = "application/models/" . $model_file ;
include "application/models/" . $model_file ;
}
$controller_file = strtolower ( $controller_name ) . '.php' ; $controller_path = "application/controllers/" . $controller_file ;
include "application/controllers/" . $controller_file ;
} else {
Route:: ErrorPage404 ( ) ;
}
$controller = new $controller_name ;
$action = $action_name ;
$controller -> $action ( ) ;
} else {
Route:: ErrorPage404 ( ) ;
}
}
static function ErrorPage404( )
{
echo "<img src='images/404.png' alt='404'>" ;
}
}
juramaj
Отправлено: 30 Января, 2015 - 12:39:50 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
esterio пишет: juramaj пишет: static function ErrorPage404()
{
echo "<img src='images/404.png' alt='404'>";
}
И опять эта статья. Уже в который раз вижу на форуме с ней проблемы в новичков
Так а какое решение этой проблемы? Может подскажите.
juramaj
Отправлено: 30 Января, 2015 - 11:30:13 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
Спасибо всем за рекомендации. Сейчас буду разбираться.
(Добавление)
Так у меня же у маршрутизаторе прописано подключение. Вот как у меня выглядит маршрутизатор.
PHP:
скопировать код в буфер обмена
class Route
{
static function start( )
{
$controller_name = 'Main' ;
$action_name = 'index' ;
$routes = explode ( '/' , $_SERVER [ 'REQUEST_URI' ] ) ; if ( ! empty ( $routes [ 1
] ) ) { $controller_name = $routes [ 1] ;
}
if ( ! empty ( $routes [ 2
] ) ) { $action_name = $routes [ 2] ;
}
$model_name = 'Model' . $controller_name ;
$controller_name = 'Controller' . $controller_name ;
$action_name = 'action' . $action_name ;
$model_path = "application/models/" . $model_file ;
include "application/models/" . $model_file ;
}
$controller_file = strtolower ( $controller_name ) . '.php' ; $controller_path = "application/controllers/" . $controller_file ;
include "application/controllers/" . $controller_file ;
} else {
Route:: ErrorPage404 ( ) ;
}
$controller = new $controller_name ;
$action = $action_name ;
$controller -> $action ( ) ;
} else {
Route:: ErrorPage404 ( ) ;
}
}
static function ErrorPage404( )
{
echo "<img src='images/404.png' alt='404'>" ;
}
}
juramaj
Отправлено: 29 Января, 2015 - 18:55:34 • Тема: autoload в mvc • Форум: Объектно-ориентированное программирование
Ответов: 44 Просмотров: 7520
Доброго времени суток! Подскажите пожалуйста, нет ли у кого примера route в реализации php, чтобы там была реализована функция __autoload. Может есть ссылка на источник где это всё реализовано. Заранее спасибо.
Страниц (7): « 1 2 3 4 [5] 6 7 »
Powered by ExBB FM 1.0 RC1. InvisionExBB