#ifdef в PHP
В своем проекте мне понадобилось собирать различные версии исходников. Причём так что бы в различных сборках помещались различные куски кода. if-else мне здесь не подходил, потому что нужно было что бы код либо точно входил, либо не входил в сборку. Поэтому я решил использовать директивы #ifdef/#endif. Для их реализации я создал небольшую программку на C#, которая обрабатывает эти директивы. В программе нужно указать исходный файл или папку, и папку куда нужно помещать готовый результат. На наличие директив обрабатываются только php файлы, остальные просто копируются. ![]()
Программа имеет глобальный массив defines, который создаётся из третьего поля («Defines (comma separated)»). Этот массив может быть дополнен директивой «#define TEXT» в php коде.
Поскольку в php символ «#» определяет комментарий, то код может быть выполнен и без вырезания этих директив. <?php #ifdef COPY $chat_page = new View('copy'); $chat_page->SetVars(array('copyright' => $this->Copyright())); $this->html = $chat_page->Get(); $this->Display(); /*#else $this->html = View('no_copy')::Call(); $this->Display(); */#endif ?>
|
|
наверх