Ответы пользователя по тегу PhpStorm
  • Почему PhpStorm требует установки расширения для curl и json?

    Ninazu
    @Ninazu
    Расширение - это дополнительные модули в PHP, они реализуют конкретно в вашем случае работу с CURL и JSON.
    Узнать подключенные модули
    https://www.php.net/manual/ru/function.extension-l...
    Список всех модулей
    https://www.php.net/manual/ru/extensions.alphabeti...

    Если на вашем сервере они установленны, то не факт что они будут установленны и на другом сервере. Поэтому PHPStorm рекоммендует добавить их в правила композера, чтоб в случае разворачивания на другом сервере, композер сообщил вам что расширения отсутсвуют

    Если бесит инспектор, то можете отключить это уведомление.
    5d4061ba05631701466003.png
    Ответ написан
    3 комментария
  • Как комитить сразу в подмодули Git в PHPStorm?

    Ninazu
    @Ninazu Автор вопроса
    Разобрался.

    При создании дочернего модуля, PHPStorm адекватно все подхватил
    git submodule add git@github.com:ninazu/framework.git ./vendor/ninazu/framework
    git commit -m "#addSubModule"
    git push


    А вот если нужно выкачать репозиторий с подмодулем, то пришлось немного потанцевать.
    cd ./vendor/ninazu/framework
    git submodule update --init --recursive
    git submodule update --recursive --remote


    Дальше переходим к настройкам PHP Storm

    Указать путь к подмодулю
    File -> Settings -> Version Control -> Add -> Directory


    Пофиксить локальную ветку
    VCS -> Git -> Branches -> Repositories -> framework -> LocalBranches -> Checkout


    Ну и обновить проект
    VCS -> UpdateProject
    Ответ написан
    Комментировать
  • Можно ли сделать свою автоподстановку в зависимости от контекста в PhpStorm?

    Ninazu
    @Ninazu
    Думаю вам нужно использовать не массив а обьект. Тогда всё взлетит)

    /**
     * @property string $key;
     * @property string $foreign_key;
     * @property string $repository;
     */
    class Helper {
    
    	private $data;
    	
    	public function __construct($data) {
    		$this->data = $data;
    	}
    
    	public function __set($name, $value) {
    		$this->data[$name] = $value;
    	}
    
    	public function __get($name) {
    		return isset($this->data[$name]) ? $this->data[$name] : null;
    	}
    }
    
    $test = new Helper(array(
    	'key'=>12,
    	'foreign_key'=>'id',
    	'repository'=>'',
    ));
    
    echo $test->key;
    $test->key = '23';
    echo $test->key;


    Ну или явно перечислить классы в доке

    class C1 {
    
    	public $name;
    }
    
    class C2 {
    
    	public $age;
    }
    
    class Helper {
    	/**
    	 * @var C1|C2
    	 */
    	public static $app;
    }
    
    
    Helper::$app->age
    Ответ написан
    Комментировать