Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как с помощью ссылки обратиться к объекту в классе
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Как с помощью ссылки обратиться к объекту в классе

Страниц (1): [1]
 

1. Давит - 11 Июня, 2011 - 00:04:38 - перейти к сообщению
Как с помощью ссылки обратиться к объекту в классе.

пример есть код
PHP:
скопировать код в буфер обмена
  1. class Welcome extends CI_Controller {
  2.  
  3.  
  4.         public function page1()
  5.         {
  6.                 echo"это страница page1";
  7.         }
  8. }


В браузере пишут ссылка /welcome/page1 и на странице отображается "это страница page1"

как такого можно сделать?
что надо написать в классе CI_Controller ?
2. OrmaJever - 11 Июня, 2011 - 00:29:32 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $v = 'page1'; // может быть любая переменая из GET
  2.  
  3. $w = new welcome;
  4. $w->$v();

Вот только нужно фильтровать значения чтобы пользователь лишнего не вызвал Подмигивание
3. jonston - 11 Июня, 2011 - 20:27:15 - перейти к сообщению
Ты показал фрагмент из Codeigniter.
Такое представление данных не совсем корректно!
Создай файл вида 'welcome_view.php' и помести его в папку application/views

теперь пропиши в этом файле пропиши
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3.     <head></head>
  4.     <body>
  5.         <a href="<?php echo base_url().'welcome/page1' ?>">перейти на страницу 1</a>
  6.     </body>
  7. </html>
  8.  


а в контроллере :

PHP:
скопировать код в буфер обмена
  1.  
  2. class Welcome extends CI_Controller {
  3.  
  4.         public function page1()
  5.         {
  6.              $this->load->view('welcome_view.php');
  7.         }
  8.  
  9. }
  10.  


это и будет ссылка на объект CI который представлен как я понимаю в виде страницы.
ссылка в этом примере будет ссылаться сама на себя!
4. Давит - 11 Июня, 2011 - 21:26:55 - перейти к сообщению
jonston
Спасибо за ответ,
Я посмотрел видео уроки по Codeigniter.

и мне интересовал что написано в классе CI Controller ,
я поискал класс CI_Controller в файлах но не нашел Огорчение
5. DeertOff - 30 Июля, 2011 - 07:48:52 - перейти к сообщению
незнаю что там в этом кодеигниторе, неразбирался,

но возможно зделано примерно так:

PHP:
скопировать код в буфер обмена
  1.  
  2. /////////// твой контроллер  /////////
  3. class Welcome extends CI_Controller
  4. {
  5.         public function page1()
  6.         {
  7.                 echo "это страница page1";
  8.         }
  9. }
  10.  
  11. /////////// базовый /////////
  12. abstract class CI_Controller
  13. {
  14.     public static function Ruote()
  15.     {
  16.         $arr = explode('/', $_SERVER['REQUEST_URI']);
  17.  
  18.         $obj = new $arr[2];
  19.         $obj->$arr[3]();
  20.     }
  21. }
  22.  
  23.  
  24.  
  25. //////// Это в index.php /////////////
  26.  
  27. CI_Controller::Ruote();
  28.  

примитивно - но работает
нету проверок и всего остального Хорошо

а от index.php в url кроме как с помощью .htaccess неизбавиться

 

Powered by ExBB FM 1.0 RC1