【问题标题】:How to create web controls in php如何在 php 中创建 web 控件
【发布时间】:2011-07-25 01:11:38
【问题描述】:

在 asp.net 中有 grideview、菜单、......等控件

如何像编辑器一样在php中开发一个web控件[html, jscript, ajax调用服务器] 反复使用,如果能分开控制改进会更好?

【问题讨论】:

    标签: php asp.net asp.net-controls web-controls


    【解决方案1】:

    首先,请注意,在 PHP 中,“控制”和更糟的是,“控制器”的含义完全不同。

    我没有使用过 ASP,但我广泛使用了 Delphi,以及用于 PHP 的 Delphi,它的功能与您所询问的相同(是的,在 PHP 中)。

    基本上,您需要某种框架来构建这些东西,正如 Johann 所说,您可能想要使用 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();
    

    【讨论】:

    • +1 感谢您指出控制器和控件。苹果到橘子
    • 感谢我使用 zend 框架,我想添加用于编辑文章的控件[总是 tinyMCE] 这在许多页面中经常使用,我想像你所做的那样将它封装在一个类中。但它有javascript交互如何在我的控件中管理javascript?
    【解决方案2】:

    在 PHP 中,您可以用纯 HTML 编写所有“控制器”。

    如果您想要更经常使用的“控制器”,请为它们制作函数,f.ex;

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

    现在你有了一个“列表控制器”。

    【讨论】:

    • 不在 C# 中,C# 有自己的“控制器”供您使用。 C# 尝试使用“控制器”模仿 Windows 编程。
    • 哈哈,你也可以在 PHP 中模仿它
    • 你能举个例子来说明你是如何在 PHP 中模仿它的吗?
    • 如果您使用带有诸如“控制器”之类的东西的框架,您也有同样的东西。 C# 没有控制器,.NET 框架 有。 PHP 没有控制器,但 Zend Framework 或 CodeIgniter 或 CakePHP 有类似的东西。
    • @Knarf @deceze OP 和 Knarf 正在谈论控件,而 deceze 正在谈论控制器。从苹果到橘子。
    【解决方案3】:

    ASP.net 试图模仿 Windows 窗体,这允许 Windows 窗体用户快速启动并运行网站。由于它模仿 Windows 窗体,他们创建了几个预加载的用户控件,您可以将这些控件插入到网页中。所有这些都是生成样式、JavaScript 和 HTML 以在客户端浏览器上显示控件以及您配置的选项所必需的。您可以尝试使用包含的 .php 在 PHP 中产生类似的效果。例如,创建一个 button.php,然后将其包含在您希望显示按钮的位置。

    但为了简单起见,我发现使用 PHP 和框架进行开发的 MVC 方法更加简洁。

    【讨论】:

    • 是的,但是当用户尝试在 PHP 中使用 ASP.NET 控件时,我想我会给他们另一种方式来构建他们的应用程序。
    猜你喜欢
    • 2010-10-21
    • 2014-08-16
    • 2018-03-06
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多