PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

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

> Найдено сообщений: 5
jmale Отправлено: 28 Июня, 2012 - 14:43:13 • Тема: Вывод "карты" кода на PHP. • Форум: PEAR и PECL

Ответов: 6
Просмотров: 3296
Спасибо. Похоже, это то что нужно.
jmale Отправлено: 27 Июня, 2012 - 17:43:00 • Тема: Вывод "карты" кода на PHP. • Форум: PEAR и PECL

Ответов: 6
Просмотров: 3296
EuGen пишет:
Что же такое - "карта" скрипта? И как быть, если подключаемые ресурсы динамичны, то есть, к примеру, подключаются при помощи autoload-функций с динамическими аргументами? То, что подключится, можно будет узнать только на этапе исполнения, так что в этом смысле карту Вы и не построите.


Карта в прямом смысле слова.
Смысл скрипта в том, чтобы узнать откуда что идет и что к чему подключается. Если скрипт поключается по autoload, в большинстве случаев можно понять какие значения может принимать переменная в autoload.

Я так понимаю, нельзя заставить сам скрипт во время выполнения вывести себя со всеми инклюдами?

Второй способ: Предположительно, при работе со скриптом, интерпретатор сначала инклюдит файлы в целевой. (index.php) Затем уже один файл обрабатывает как строку.

Вопрос знатокам. Как в этот момент поймать строку с помощью расширения?


P.S.:Смысл карты в том, чтобы можно было запускать CMS-ки например и быстрее в них разбираться.
jmale Отправлено: 27 Июня, 2012 - 16:10:59 • Тема: Вывод "карты" кода на PHP. • Форум: PEAR и PECL

Ответов: 6
Просмотров: 3296
Panoptik пишет:
debug_backtrace(), debug_print_backtrace() - придумали для подобных целей и эксцепшены.
зачем велосипедить? (или велосипедировать? как правильно?)


Смысл в том, чтобы сделать удобоваримое представление.

Дебаг и эксепшены не дают полной карты работы скрипта.
jmale Отправлено: 27 Июня, 2012 - 15:18:54 • Тема: Вывод "карты" кода на PHP. • Форум: PEAR и PECL

Ответов: 6
Просмотров: 3296
Привет!

У меня вопрос, решение которого может помочь многим программистам, включая Вас.

Как реализовать возможность просмотра «карты» PHP кода?
Например:
Я хотел бы реализовать код, который может отображать карту сценария.

Например, я получаю код, который необходимо отладить, но я не знаю, его структуры и модели.

Вариант 1:
Я написал в специальную функцию в начале скрипта, запустите его и получить в указанном файле ("dump.txt") скрипт с кодами всех включаемых файлов.
Код index.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //index.php
  3.  
  4. <?php
  5.          function special_function(){
  6.                 .......
  7.                 file_put_contents("dump.txt",$result);
  8.          }
  9.          define("modules","/modules/");
  10.          
  11.          function greeting(){
  12.                echo "Hello, user!";
  13.          }
  14.          
  15.          $a = "112";
  16.          
  17.         include("main.php");
  18.                                             //main.php
  19.                                              class main{
  20.                                               ....
  21.                                               }
  22.                                               include(modules."module1.php);
  23.                                               include(modules."module2.php);
  24.                                               include(modules."module3.php);
  25.                                                                                   // ... module3.php
  26.                                                                                  class modulethree{
  27.                                                                                  ....
  28.                                                                                  }
  29.                                                                                  $modulethree->render();
  30.                                               include(modules."module4.php);
  31.                                               include(modules."module5.php);
  32.                                               include(modules."module6.php);
  33.                                            
  34.          
  35.      include("components.php");
  36.                                              //components.php
  37.                                               include(components."component1.php);
  38.                                               include(components."component2.php);
  39.                                               include(components."component3.php);
  40.                                               include(components."component4.php);
  41.      include("template.php");
  42.  ?>
  43.  

Файл: dump.txt
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.          define("modules","/modules/");
  4.          
  5.          function greeting(){
  6.                echo "Hello, user!";
  7.          }
  8.          
  9.          $a = "112";
  10. // ========================main.php=====================
  11.          class main{
  12.            ....
  13.           }
  14.           // ========================modules/module1.php=====================
  15.           // ========================modules/module2.php=====================
  16.           // =============================module3.php==========================
  17.          class modulethree{
  18.                ....
  19.          }
  20.          $modulethree->render();
  21.          // ========================modules/module4.php=====================
  22.          // ========================modules/module5.php=====================
  23.          // ========================modules/module6.php=====================
  24.    
  25. //===========================components.php========================
  26.          // ========================components/component1.php=====================
  27.          // ========================components/component2.php=====================
  28.          // ========================components/component3.php=====================
  29.          // ========================components/component4.php=====================
  30. // ========================template.php=====================
  31.         <html>
  32.        <head><?=$title?></head>
  33.         <body><?=$body?></body>
  34.          </html>
  35.   ?>
  36.  

Возможно, "special_function" должен быть вызван из другого сценария.

Вариант 2: Разработать расширение для PHP. На мой взгляд, лучшее решение этой проблемы.

В этом случае, где и как я могу поймать PHP код в виде строки после вставки всех инклюдов?
jmale Отправлено: 01 Марта, 2012 - 22:52:02 • Тема: curl и робокасса • Форум: Программирование на PHP

Ответов: 6
Просмотров: 1336
Зачем изобретать велосипед?
PHP:
скопировать код в буфер обмена
  1.  
  2. $robo = array("mrchlogin"=>.....);
  3.  
  4. foreach($robo as $k=>$v){
  5.        $post.=$k."=".$v."&";
  6. }
  7.                   $post = mb_substr($post,0,mb_strlen($post)-1);
  8.                   header("Location:".ROBO_URL."?".$post);
  9.                   die();
  10.  
  11.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB