Как мне заставить PhpStorm думать, что мой файл находится в другом каталоге для Intellisense / завершения?

#php #angularjs #laravel #phpstorm #organization

#php #angularjs #laravel #phpstorm #организация

Вопрос:

Я использую Laravel (PHP Framework) для своего веб-сайта. В Laravel организация кода (в общих чертах) выглядит следующим образом

 /app
    /views
        [my base file A].php
        [my base file B].php
        [my base file C].php
/public
    /css
    /js
    /lib
    index.php
  

На самом деле в /app нем много папок, но я показал только важную, в которую я добавлю: /views .
Из-за того, как Laravel организует вещи, public/index.php файл используется в качестве основного загружаемого представления приложения, но он загружает фактический html из одного из views/[my base file].php файлов.

Так [my base file A].php выглядело бы, например, так:

 <link rel="stylesheet" href="css/Normalize.css" type="text/css" />
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="css/out.css" type="text/css" />
  

где находится папка, css/ потому что эта разметка в конечном итоге попадет в public/index.php . Я получаю ошибки, потому что в этом файле app/views/ нет css/ папки.

Я боюсь, что по мере заполнения этих файлов большим количеством кода и ссылок на вещи в public/ папке, я получу слишком много ошибок, на мой вкус. Мой пример приведен только <link> сейчас, но у меня будет гораздо больше. Мне также нужно завершение — я буду использовать прямые привязки AngularJS из $ scope, как в <h3> {{messages.hello}} </h3> (это означает, что я получу доступ к переменной в файле javascript, и мне нужно завершение, чтобы упростить жизнь).

Итак, мой вопрос таков: что я хотел бы сделать, так это по-прежнему выполнять все отчеты о завершении / intellisense / ошибках для файлов в /views , как будто файл находился в /public папке и уже является частью index.php … Кто-нибудь знает способ сделать это?

В настоящее время я думаю о чем-то вроде перемещения моего кода из папки, но
— Это может быть плохой практикой перемещать эти вещи в папку, обозначенную как общедоступная
— Это может испортить Laravel

Комментарии:

1. возможно, это видео поможет. Предназначен для WebStorm, но концепции в phpstorm те же go.jetbrains.com/426QVD1140001sB00u0SV00

2. Пометьте public папку как корневой каталог ресурса

3. Спасибо @LazyOne! Отправьте ответ, и я дам вам чек.

Ответ №1:

Вам нужно пометить public папку как корневой каталог ресурса.