Как создать веб-элементы управления в php

в asp.net есть элементы управления, такие как grideview, меню, .....

как разработать веб-элемент управления на php, например, редактор [html, jscript, ajax-вызовы на сервер], он используется повторно, и улучшение управления будет лучше, если мы сможем его разделить?


person ahmedsafan86    schedule 29.03.2011    source источник


Ответы (3)


Во-первых, имейте в виду, что в PHP «управление» и, что еще хуже, «контроллер» означает совершенно другое.

Я не использовал ASP, но я широко использовал Delphi, а также Delphi для PHP, который делает то же самое, о чем вы спрашиваете (да, в PHP).

По сути, вам нужна какая-то структура для создания этого материала, как сказал Йоханн, вы можете использовать MVC, но на самом деле вам это не обязательно.

Пример такой системы (без MVC):

class TControl {
    public $width=0;
    public $height=0;
    public $name='ControlN';
    public function render(){
        echo '<div style="width:'.(int)$this->width.'px; height:'.(int)$this->height.'px;"/>';
    }
}

class TLabel {
    public $caption='Label';
    public function render(){
        echo '<div style="width:'.(int)$this->width.'px; height:'.(int)$this->height.'px;">'.htmlspecialchars($this->caption,ENT_QUOTES).'</div>';
    }
}

$label=new TLabel();
$label->width=200;
$label->height=24;
$label->caption='My label!';
$label->render();
person Christian    schedule 29.03.2011
comment
+1 СПАСИБО за указание на Контроллер и элементы управления. Яблоки к апельсинам - person JohnP; 29.03.2011
comment
спасибо, я использую zend framework, я хочу добавить элемент управления для редактирования статей [всегда tinyMCE], это часто используется на многих страницах, я хочу инкапсулировать его в класс, как то, что вы сделали. но у него есть взаимодействие с javascript, как управлять javascript под моим контролем? - person ahmedsafan86; 29.03.2011

В PHP вы пишете все «контроллеры» в простом HTML.

Если вам нужны «контроллеры», которые вы используете чаще, создайте для них функции, например;

function list($array)
{
   $output = '';
   foreach($array as $item) $output .= "<li>$item</li>";
   return "<ul>$output</ul>";
}

Теперь у вас есть «контроллер списка».

person Knarf    schedule 29.03.2011
comment
Не в С#, у С# есть свои собственные «контроллеры», которые вы используете. С# пытается имитировать программирование Windows с помощью «контроллеров». - person Knarf; 29.03.2011
comment
LOL, вы можете имитировать это и в PHP - person Your Common Sense; 29.03.2011
comment
Не могли бы вы привести пример того, как вы «имитируете это в PHP»? - person Knarf; 29.03.2011
comment
вы просто кодируете его как библиотеку или плагин и включаете в свой проект. Элементы управления C# — это просто код. Это просто разница в окружении - person JohnP; 29.03.2011
comment
Если вы используете фреймворк, который поставляется с чем-то вроде контроллеров, у вас тоже есть то же самое. C# не имеет контроллеров, в отличие от .NET framework. В PHP нет контроллеров, но в Zend Framework, CodeIgniter или CakePHP есть нечто подобное. - person deceze♦; 29.03.2011
comment
Вы действительно можете имитировать его в PHP, но PHP не имеет встроенных функций, которые пытаются имитировать его, C# действительно пытается имитировать его, они не хотят, чтобы разработчики даже смотрели на HTML, они делают все это за вас . В PHP вы должны знать HTML. - person Knarf; 29.03.2011
comment
Хорошо сказал @deceze. Вероятно, это был бы ответ на вопрос Ахмеда Сафана. Использовать фреймворк - person Knarf; 29.03.2011
comment
@Knarf @deceze ОП и Кнарф говорят об элементах управления, а deceze говорит о контроллерах. Яблоки к апельсинам. - person JohnP; 29.03.2011
comment
Кнарф - не согласен; PHP сам по себе требует этого, но если вы попробуете Delphi для PHP, вам может вообще не понадобиться изучать HTML. JohnP прав. - person Christian; 29.03.2011
comment
@Джон Опечатка! с/контроллеры/управление/. Увлекся опечатанным комментарием @Knarf. Я бы назвал их помощниками для начала. - person deceze♦; 29.03.2011

ASP.net пытается имитировать Windows Forms, что позволяет пользователям Windows Forms быстро запустить веб-сайт. И поскольку он имитирует Windows Forms, они создали несколько предварительно загруженных пользовательских элементов управления, которые можно вставить на веб-страницу. Все, что они делают, это создают стили, JavaScript и HTML, необходимые для отображения элемента управления в клиентском браузере с настроенными вами параметрами. Вы можете попытаться создать аналогичный эффект в PHP с включенным .php. Например, создайте button.php, а затем включите его там, где вы хотите, чтобы кнопка отображалась.

Но для простоты я обнаружил, что подход MVC для разработки с PHP и Framework намного чище.

person Johann du Toit    schedule 29.03.2011
comment
Верно, но поскольку пользователь пытается использовать элементы управления ASP.NET в PHP, я подумал, что дам им другой способ структурировать свое приложение. - person Johann du Toit; 29.03.2011