ФорумПрограммированиеPHP для идиотов → @return в phpDoc переменная

@return в phpDoc переменная

  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2010 г. 11:20

    Можно ли задать @return в phpDoc как переменную, которую глотает метод или функция?

    пробовал в netbeans - не возвращает нужный тип:



    /**
    * @param string $sNameClass;
    * @return $sNameClass;
    */

    public function load($sNameClass) {




    чет погуглил не нашел ответа, скорее всего нельзя, но так хотелось бы )
    может какая нить IDE в этом плане рулит, но хотелось бы такое в netbeans
  • master

    Сообщения: 3242 Репутация: N Группа: Джедаи

    Spritz 16 декабря 2010 г. 11:30, спустя 10 минут 24 секунды

    /** 
    * @param string $sNameClass;
    * @return ClassName;
    */

    public function load($sNameClass) {
    return new ClassName;
    }


    в ZendStudio, да и наверное в других редакторах когда будешь набивать
    $xyz = load(…);
    $xyz->
    в автодополнении появятся методы класса ClassName
    после @return должен быть указан тип
    не всё полезно, что в swap полезло
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2010 г. 11:38, спустя 7 минут 26 секунд


    в ZendStudio, да и наверное в других редакторах когда будешь набивать
    $xyz = load(…);
    $xyz->
    в автодополнении появятся методы класса ClassName
    после @return должен быть указан тип


    это то понятно, с этим как раз все отлично

    дело в том что я сделал загрузку классов вот так:


    <?php

    /**
    * Description of Load
    *
    * @author Andrey
    */
    class Load {

    private static $_instance = null;
    private $aModels = array();

    private static function getInstance() {
    if (!self::$_instance) {
    self::$_instance = new Load();
    }
    return self::$_instance;
    }

    /**
    * @param string $sModel
    * @return mixed $sModel
    */
    static function model($sModel) {
    if (!isset(self::getInstance()->aModels[$sModel])) {
    $sFileModelPath = APP_PATH . 'model/' . $sModel . '.php';
    if (file_exists($sFileModelPath)) {
    include_once $sFileModelPath;
    self::getInstance()->aModels[$sModel] = new $sModel;
    } else {
    die('class Load error: попытка загрузки не существующей модели - '.$sModel);
    }
    }
    return self::getInstance()->aModels[$sModel];
    }
    }



    т.е. метод возвращает тип (объект) который задан как параметр - $sModel
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 16 декабря 2010 г. 11:42, спустя 4 минуты 2 секунды

    По-правильному все эти модели должны наследоваться от одного предка (или реализовывать один интерфейс). Тогда в @return базовый класс указать и стоит.

    Кроме того, вы видимо хотите, на этапе выполнения сценария передавать различные переменные в функцию, а подсветку иметь уже на этапе написания кода. Через чур умная IDE должна быть :)
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2010 г. 11:59, спустя 16 минут 43 секунды


    По-правильному все эти модели должны наследоваться от одного предка (или реализовывать один интерфейс). Тогда в @return базовый класс указать и стоит.

    Кроме того, вы видимо хотите, на этапе выполнения сценария передавать различные переменные в функцию, а подсветку иметь уже на этапе написания кода. Через чур умная IDE должна быть :)


    ну уж не слишком шибко умной ) здесь не важно какие переменные будут передаваться модели… Насчет одного предка тоже думал, наверное так и сделаю.
    Ну да ладно, думаю с такой фичи нетбинс бы тормозил сильно. Он итак не летает, по сравнению с notepad++ )
  • master

    Сообщения: 3242 Репутация: N Группа: Джедаи

    Spritz 16 декабря 2010 г. 12:13, спустя 14 минут 10 секунд

    дело в том что я сделал загрузку классов вот так

    попробуй не делать загрузку классов так
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 16 декабря 2010 г. 12:42, спустя 29 минут 41 секунду

    По-правильному все эти модели должны наследоваться от одного предка (или реализовывать один интерфейс). Тогда в @return базовый класс указать и стоит.

    а вот хуй совершенно не обязательно. Взять хотя бы ту же Doctrine2
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 16 декабря 2010 г. 12:49, спустя 6 минут 24 секунды

    в жопу доктрину :)
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 16 декабря 2010 г. 12:51, спустя 2 минуты 1 секунду

    а что не в жопу? какие-то непонятные самопальные классы моделей?)
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2010 г. 13:37, спустя 45 минут 54 секунды


    дело в том что я сделал загрузку классов вот так

    попробуй не делать загрузку классов так


    если так не делать, то надо везде инклудить и рекварить, что тоже вариант но не так красиво:

    $oPageModel = Load::model('PageModel');

    // вместо:

    include APP_PATH.'model/PageModel.php';
    $oPageModel = new PageModel();


    хотя хз )


    а что не в жопу? какие-то непонятные самопальные классы моделей?)


    почему не понятные, наоборот понятные )
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 16 декабря 2010 г. 13:41, спустя 4 минуты 21 секунду

    то надо везде инклудить и рекварить

    оспади исусе, не нужно ничего руками инклюдить. Есть же [man]spl_autoload_register[/man]

    наоборот понятные )

    одному тому, кто их писал. И не факт, что они будут хорошо спроектированы и оттестированы
  • adw0rd

    Сообщения: 22933 Репутация: N Группа: в ухо

    Spritz 17 декабря 2010 г. 7:12, спустя 17 часов 30 минут 28 секунд

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 17 декабря 2010 г. 7:23, спустя 11 минут 24 секунды

    Ура! Адворд устроился на работу, теперь будет сидеть на форуме!
    Спустя 79 сек.
    а что не в жопу? какие-то непонятные самопальные классы моделей?)

    да просто один тут с питоном везде лезет, дургой с доктриной :)
    не "в доктрине так сделано", а приведи пример свой )
  • adw0rd

    Сообщения: 22933 Репутация: N Группа: в ухо

    Spritz 17 декабря 2010 г. 11:23, спустя 4 часа 23 секунды

    доктрина на питон!
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 17 декабря 2010 г. 11:36, спустя 12 минут 23 секунды

    не "в доктрине так сделано", а приведи пример свой )

    велосипедность хороша в меру. Зачем мне реализовывать свой DataMapper? Я не хочу

Пожалуйста, авторизуйтесь, чтобы написать комментарий!