PHP OOP 链接制作器?

发布于 2024-10-01 15:00:54 字数 325 浏览 4 评论 0原文

我在 php 中编写了一个类,我需要在该类的函数中编写的所有引用都有一个前缀。那就是...

class MyClass
{
    function echoing()
    {
        $class = new LinkMaker();
        return $class->create(array('href' => 'popular/books/', 'title' => 'Popular books of 2010'));
    }
}

然后在 LinkMaker 类中我向链接添加一个前缀..我想做吗? 抱歉英语不好

I write a class in php and I need that all references that I am writing in the functions of the class had a prefix. That is...

class MyClass
{
    function echoing()
    {
        $class = new LinkMaker();
        return $class->create(array('href' => 'popular/books/', 'title' => 'Popular books of 2010'));
    }
}

And then in the class LinkMaker I add a prefix to the links .. Are all right I want to do?
sorry for bad english

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心在旅行 2024-10-08 15:00:54

我想我明白你在说什么。您想在服务器端构建 DOM。

下面是我编写的重载 PHP 5 类,它可以执行此操作。它将采用任何 HTML 5 锚点属性。

用法:

<?
    $links = array(
        new BabyLink(array('href' => '/home', 'name' => 'home', 'title' => 'Home Page', 'label' => 'Home')),
        new BabyLink(array('href' => '/about', 'name' => 'account', 'title' => 'About This Site', 'label' => 'About')),
        new BabyLink(array('href' => '/contact', 'name' => 'contact', 'title' => 'How To Contact Us', 'label' => 'Contact')),
        new BabyLink(array('href' => '/logout', 'name' => 'logout', 'title' => 'Log Out', 'label' => 'Logout'))
        );

foreach ($links as $link)
     {
     $link->render();
     }

<?

/**
 * BabyLink HTML5 Anchor Link Model
 * @author Warren Stevens ([email protected])
 * @package Baby
 **/

class BabyLink
    {

    public $id = false;

    protected $me = array();

    public $fields = array('id', 'accesskey', 'class','contenteditable', 'contextmenu', 'data-', 'draggable', 'hidden', 'href', 'hreflang', 'item', 'itemprop', 'label', 'lang', 'media', 'ping', 'rel', 'spellcheck', 'style', 'subject', 'tabindex', 'target', 'title', 'type');

    function __construct(array $a) { $this->set($a); }

    /**
     * @param string
     * @param array
     **/
    function __call($k, $args = array()) { return $this->me[$k]; }

    function get() { return $this->me; }

    function set(array $a)
        {
        foreach($this->fields as $k) { if(isset($a[$k])) { $this->me[$k] = $a[$k];}}
        $this->id = $this->me['id'];
        }

##### PUBLIC


    public function render()
        {
        $str = '<a ';
        foreach ($this->me as $k => $v)
            {
            $str .= $k.'="'.$v.'" ';
            }
        $str .= '>'.$this->label().'</a>';
        print $str;
        }
    }

I think I understand what you are saying. You want to kindof build the DOM on the server side.

Below is an Overloaded PHP 5 class I wrote which does this. It will take any HTML 5 anchor attribute.

Usage:

<?
    $links = array(
        new BabyLink(array('href' => '/home', 'name' => 'home', 'title' => 'Home Page', 'label' => 'Home')),
        new BabyLink(array('href' => '/about', 'name' => 'account', 'title' => 'About This Site', 'label' => 'About')),
        new BabyLink(array('href' => '/contact', 'name' => 'contact', 'title' => 'How To Contact Us', 'label' => 'Contact')),
        new BabyLink(array('href' => '/logout', 'name' => 'logout', 'title' => 'Log Out', 'label' => 'Logout'))
        );

foreach ($links as $link)
     {
     $link->render();
     }

<?

/**
 * BabyLink HTML5 Anchor Link Model
 * @author Warren Stevens ([email protected])
 * @package Baby
 **/

class BabyLink
    {

    public $id = false;

    protected $me = array();

    public $fields = array('id', 'accesskey', 'class','contenteditable', 'contextmenu', 'data-', 'draggable', 'hidden', 'href', 'hreflang', 'item', 'itemprop', 'label', 'lang', 'media', 'ping', 'rel', 'spellcheck', 'style', 'subject', 'tabindex', 'target', 'title', 'type');

    function __construct(array $a) { $this->set($a); }

    /**
     * @param string
     * @param array
     **/
    function __call($k, $args = array()) { return $this->me[$k]; }

    function get() { return $this->me; }

    function set(array $a)
        {
        foreach($this->fields as $k) { if(isset($a[$k])) { $this->me[$k] = $a[$k];}}
        $this->id = $this->me['id'];
        }

##### PUBLIC


    public function render()
        {
        $str = '<a ';
        foreach ($this->me as $k => $v)
            {
            $str .= $k.'="'.$v.'" ';
            }
        $str .= '>'.$this->label().'</a>';
        print $str;
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文