成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php magic method 的具體應(yīng)用和 phpdoc 結(jié)合

csRyan / 1283人閱讀

摘要:關(guān)于的介紹自行查閱官方文檔,這里不再贅述。使用的同學(xué)注意了,如果在我們的代碼中使用到了中相關(guān)的魔術(shù)方法,需要在文件中指明告訴應(yīng)該如何來跟蹤變量屬性。下面我們來具體實踐分析。確實這個樣子可以實現(xiàn),但沒有利用到這一魔術(shù)方法的特性。

關(guān)于 Magic Methods 的介紹自行查閱官方文檔,這里不再贅述。
http://php.net/manual/en/lang...

使用 phpstorm 的同學(xué)注意了,如果在我們的代碼中使用到了 php 中相關(guān)的魔術(shù)方法,需要在 php 文件中指明告訴 phpstorm 應(yīng)該如何來跟蹤變量屬性。下面我們來具體實踐分析。

假設(shè)現(xiàn)在我有一個 php 的基類名為 BaseController.php

container = $container;
    }

    /**
     * @param $name
     * @return mixed
     */
    public function __isset ($name)
    {
        return $this->container->{$name};
    }

    /**
     * @param $name
     * @param $value
     * @return mixed
     */
    public function __set ($name, $value)
    {
        return $this->container->{$name} = $value;
    }

    /**
     * @param $name
     * @return mixed
     */
    public function __get ($name)
    {
        return $this->container->{$name};
    }
}

同時還有一個 CompanyController.php 的類文件繼承的該 BaseController.php

auth->requestUser($request);
    }
}

這里我們主要要關(guān)注的點就是 $this->auth 這個,因為這個才是我們今天要將的重點。這里再說一點,列舉的代碼是基于 slim framework 中的一部分,有不了解 slim framework 的可以先了解下。當(dāng)然不了解也不影響我們今天要說的這一點。下面是正題。

這里我想實現(xiàn)的效果就是當(dāng)我在 CompanyController.php 的方法中要訪問這個容器(container)中的 auth,可以直接使用 $this->auth,然后就可以操作auth中的方法和屬性等。

那上面我列舉的方式是使用 php 語言的 magic methods 這個特性,那有同學(xué)就要說了,我直接指定豈不是也可以,答案是肯定的。

container = $container;
        $this->auth      = $this->container->get("auth");
        $this->validator = $this->container->get("validator");
        $this->fractal   = $this->container->get("fractal");
        $this->session   = $this->container->get("session");
        $this->db        = $this->container->get("db");
    }

效果就是這個樣子。
確實這個樣子可以實現(xiàn),但沒有利用到 magic method 這一魔術(shù)方法的特性。

這里著重說明的是這個我們定義的這些個類內(nèi)部屬性(這些成員屬性必須通過phpdoc 的 @var 來指明你將要調(diào)用的成員屬性是哪一個不然 phpstorm 不會識別提示)和 __get() 方法,當(dāng)我們要訪問不可訪問的屬性時會調(diào)用該方法。
那所以說 $auth | $validator | $db | fractal 等屬性我們要在外部自動調(diào)用 __get() 方法來訪問的話就必須將其訪問修飾符設(shè)置為 private (php 中的三種修飾符 public protected private),這樣我們在外部調(diào)用才能自動執(zhí)行到 __get() 方法,達到同樣的目的來調(diào)用 $this->auth 等

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30784.html

相關(guān)文章

  • PHP注釋藝術(shù)——phpDoc規(guī)范

    摘要:特別適合一些動態(tài)加載的類,無法自動提示出來,這時就可以通過寫標(biāo)記來告訴我這類里有哪些方法格式返回值類型名稱類型參數(shù)描述例如向谷歌提問,返回答案內(nèi)容包。 用過IDE或看過其他源碼的小伙伴們應(yīng)該都見過類似下面這樣的注釋 /** * 遞歸獲取所有游戲分類 * @param int $id * @return array */ 看得多了就大概知道了一些規(guī)律。為了使自己的代碼更加規(guī)zhu...

    HtmlCssJs 評論0 收藏0
  • php-cs-fixer - PHP 編碼格式化工具

    摘要:是個代碼格式化工具,格式化的標(biāo)準(zhǔn)是以及一些的標(biāo)準(zhǔn)。這個工具也和等優(yōu)秀的庫出自同門。如果同時設(shè)定了和,前者的優(yōu)先級更高。同時使用和命令可以顯示出需要修改的匯總,但是并不實際修改。你可以設(shè)置格式化的選項級別文件以及目錄。 php-cs-fixer 是個代碼格式化工具,格式化的標(biāo)準(zhǔn)是 PSR-1、PSR-2 以及一些 symfony 的標(biāo)準(zhǔn)。這個工具也和 symfony、twig 等優(yōu)秀的 ...

    ityouknow 評論0 收藏0
  • Zurmo - - 新手入門指南

    摘要:新建時創(chuàng)建默認數(shù)據(jù)將基本字段添加到你的類在本節(jié)中,介紹如何向最近創(chuàng)建的類添加類型為,或的新的基本字段,在這個例子中,我們將向類添加一個新的字段首先要做的是定義類中的新字段。 新手入門指南-創(chuàng)建模塊 Customizing Zurmo ---- 自定義Zurmo 官方的動物園為例:鏈接:http://zurmo.org/wiki/customi... 新建模塊 所有擴展類將在自己的模塊...

    fredshare 評論0 收藏0
  • Zurmo - - 新手入門指南

    摘要:新建時創(chuàng)建默認數(shù)據(jù)將基本字段添加到你的類在本節(jié)中,介紹如何向最近創(chuàng)建的類添加類型為,或的新的基本字段,在這個例子中,我們將向類添加一個新的字段首先要做的是定義類中的新字段。 新手入門指南-創(chuàng)建模塊 Customizing Zurmo ---- 自定義Zurmo 官方的動物園為例:鏈接:http://zurmo.org/wiki/customi... 新建模塊 所有擴展類將在自己的模塊...

    yy13818512006 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<