Jump to content
  • 0

Есть пара вопросов по phpDoc


ekkl
 Share

Question

В общем в начале класса есть описание магического метода

/** * @method Xform text(string $name, string $value = null, mixed $attribules = array()) Создает текстовое поле *  */

Как добавить описание для параметров функции. На сайте ничего не нашел

http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags.method.pkg.html

В редакторе Netbeans 8.0 это выглядит так

text  Создает текстовое поле Параметры: string $name Не удалось найти PHPDoc string $value = null mixed $attribules = array()
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

В общем в начале класса есть описание магического метода

/** * @method Xform text(string $name, string $value = null, mixed $attribules = array()) Создает текстовое поле *  */
Как добавить описание для параметров функции. На сайте ничего не нашел

http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags.method.pkg.html

В редакторе Netbeans 8.0 это выглядит так

text  Создает текстовое поле Параметры: string $name Не удалось найти PHPDoc string $value = null mixed $attribules = array()
/** * Создает текстовое поле * @param string $name * @param string $value * @param mixed $attribules * @return mixed  */
@param http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html

@return http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.return.pkg.html

Edited by wwt
Link to comment
Share on other sites

  • 0
Как это к верстке то относится?

К самой верстке никак. Если не в том разделе, прошу прощения.

wwt, нет, не проходит. Предложенное вами объявления для явных функций, а функция создания текстовго поля вызыввается через __call()

Edited by ekkl
Link to comment
Share on other sites

  • 0

__call()

 

функционал создания находится в теле метода  __call ? Что-то сомневаюсь. Скорее там что-то типо:

function __call($method_name, array $params){   $object = new Field;//как пример   if(method_exists($object, $method_name )){      return $object->$method_name($params);   }else{      return false;   }}

Вообще @method предназначен для документирования магических методов которые реализованы через __call() при этом вам никто не мешает вынести сам функционал из __call() в приватный метод и задокументировать его.

что-то типо:

/*** @method Xform text(string $name, string $value = null, mixed $attribules = array()) Создает текстовое поле**/function __call($method_name, array $params){   if($method_name == 'text' && count($params) == 3){      return $this->_text($params[0], $params[1], $params[2]);   }else{      return false;   }}/*** Создает текстовое поле* @param string $name* @param string $value* @param mixed $attribules* @return boolean*/private function _text($name, $value = null, $attribules = array()){}
Edited by wwt
Link to comment
Share on other sites

  • 0
 /**     *      * @param string имя поля или параметра     * @param array Параметры      * @return $this     */    public function __call($type, $args)    {        $name = $args[0];        $value = isset($args[1]) ? $args[1] : null;        $param = isset($args[2]) ? $args[2] : array();        // Это поле, или устанавливается параметр?        if (in_array($type, ['text', 'hidden', 'password', 'file', 'textarea', 'submit', 'checkbox', 'email']))        {            // Создаем новое поле            $this->new_field($type, $name, $value, $param);        }        else        {            // Устанавливаем параметр для текущего поля            $this->set_param($type, $name);        }                return $this;    }

nef_field() создает не только поля, но и списки, флажки, кнопки и т.д.

Link to comment
Share on other sites

  • 0

 

// Это поле, или устанавливается параметр?

public function __call($type, $args)

 

$type - имя вызываемого метода

$args - переданные в него параметры

$this->new_field($type, $name, $value, $param);

Метод класса через который создаются элементы формы, а селекты и тд тоже элементы формы. Если вы не заметили все передаваемые в него параметры статичны. Теперь можете проанализировать работу данного метода. В параметры добавляется только 1 параметр(первый $type) это тип поля, который определяется с помощью названия вызываемого метода.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By ekkl
      В принципе есть два вопроса по этой IDE, они не критичны, скорее это удобства ради.
      Кто, знает просьба отозваться.
      Пишу на Kohana, хочу настроить форматирование синтаксиса в соответствии с их стандартами. Все получилось, только строка


      <?php defined('SYSPATH') OR die('No direct script access.');

      Разрывается на две строки


      <?php
      defined('SYSPATH') OR die('No direct script access.');

      Никто не знает как это исправить?
      И второе, как настроить шаблоны, так, чтобы можно было получить не только имя файла ни и путь
      С оф. сайта


      Can you give me a list of all the predefined variables for templates, like ${user} and ${date}?

      ${date} inserts the current date, in this format: Feb 16, 2008
      ${encoding} inserts the default encoding, such as: UTF-8
      ${name} inserts the name of the file.
      ${nameAndExt} inserts the name of the file, together with its extension.
      ${package} inserts the name of the package where the file is created.
      ${time} inserts the current time, in this format: 7:37:58 PM
      ${user} inserts the user name.
      ${project.license} based on the value (e.g., 'CDDL'), the license header is found and is inserted into the template.
      ${project.name} inserts the project name
      ${project.displayName} inserts the project displayname

      Такой переменной нет, но там можно расширить с помощью Java. Если кто знает, подскажите, пожалуйста.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy