亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

csRyan / 1342人閱讀

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

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

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

假設(shè)現(xiàn)在我有一個(gè) 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};
    }
}

同時(shí)還有一個(gè) CompanyController.php 的類文件繼承的該 BaseController.php

auth->requestUser($request);
    }
}

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

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

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

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");
    }

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/30784.html

相關(guān)文章

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

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

    HtmlCssJs 評(píng)論0 收藏0
  • php-cs-fixer - PHP 編碼格式化工具

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

    ityouknow 評(píng)論0 收藏0
  • Zurmo - - 新手入門指南

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

    fredshare 評(píng)論0 收藏0
  • Zurmo - - 新手入門指南

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

    yy13818512006 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<