Как классы пишутся при разработке плагина - PullRequest
0 голосов
/ 07 января 2019

Я разрабатываю плагин October CMS, скажем, author.pluginname, на платформе Windows.

Файловое хранилище / framework / classes.php предназначено для автоматической генерации со ссылками моих классов, верно?

Я не уверен, так ли это всегда, и я не знаю, нужно ли мне или как заставить это произойти. Два случая были следующими: 1) я только что создал новый класс, 2) я переустановил свой плагин для другого теста (сервер Linux).

Например, я просто скопировал свой плагин в новую установку CMS за октябрь, но после установки плагина с плагином: refresh, он не появляется в файле classes.php.

Я захожу на страницу, где используется компонент, и получаю ошибку: класс не найден:

"Class 'author\plugin\Models\modelx' not found" on line 653 of /pathtowww/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php

когда я grep моего автора, он находит некоторые классы, но не все: grep -i хранилище автора / framework / classes.php

Мне пришлось добавить его вручную, чтобы он работал, но я предполагаю, что это не то, что мы должны делать. Так что я должен написать в файле Class или «зарегистрироваться» в папке Plugin.php?

Обратите внимание, что этот плагин отсутствует в Marketplace (очевидно, он не разработан).

Кроме того, когда я создаю новый класс с помощью плагина Builder, он появляется в файле classes.php. Когда я создаю его с помощью моего текстового редактора, это часто не происходит. Извиняюсь, если это очевидно, но я совершенно запутался ....!

1 Ответ

0 голосов
/ 11 января 2019

Я нашел решение (и) проблем на случай, если кто-нибудь столкнется с этими проблемами.

1) Если используется Windows + другая операционная система, убедитесь, что имена папок / файлов указаны в правильном регистре. В Windows регистр не учитывается, поэтому опечатка не приведет к ошибке, пока вы не перейдете на Linux / OSX

2) Classes.php генерируется автоматически ТОЛЬКО, если пространство имен соответствует структуре каталогов вашего файла. Поэтому, если вы переместите файл (или у вас неправильное пространство имен), classes.php не будет сгенерирован, и вы получите класс, который не найден.

...