Есть 2 способа, как вы можете решить эту проблему:
1. Загрузите ваше расширение через проект composer.json
Создайте папку для ваших пользовательских расширений, я назвал ее здесь Extensions
и переместите все ваши собственные расширения в эту папку. Ваша папка public/typo3conf/ext/
теперь должна содержать только расширения, загруженные композитором, и может быть очищена в любое время, так как простой composer i
вернет все расширения обратно.
└── projectRoot
├── Extensions
│ └── secsign
│ └── Classes
├── composer.json
└── public
└── typo3conf
└── ext
└── secsign(symlink_by_composer)
Добавьте это в ваш проект composer.json:
"repositories": {
"0": {
"type": "composer",
"url": "https://composer.typo3.org/"
},
"1": {
"type": "path",
"url": "./Extensions/*",
"options": {
"symlink": true
}
}
},
...
"require": {
"secsign/secsign": "*",
...
},
Удалите вторую строку из автозагрузки в ваших расширениях composer.json
public / Extensions / secsign / composer.json:
"autoload": {
"psr-4": {
"Secsign\\Secsign\\": "Classes/"
}
},
Теперь composer загружает ваш проект composer.json, находит ваше расширение, помещает его в typo3conf / ext / и читает ваши расширения composer.json и выполняет его.
ЗагрузкаВсе Ext в вашем проекте: Когда вы закончите со всеми этими изменениями, просто сделайте composer update
. Это загрузит все ваши сторонние расширения в projectRoot/public/typo3conf/ext/
и создаст символическую ссылку на ваши пользовательские расширения из secsign -> ../../../Extensions/secsign
Добавление дополнительных пользовательских расширений: Просто добавьте ваше собственное расширение в Extension/
, убедитесь, чтоон имеет действительный composer.json
и включает его с
composer req secsign/one-more-ext
2. Добавьте ваши классы в ваш проект composer.json
Оставьте свое расширение там, где оно есть, не заботьтесь о своих расширениях composer.json и просто добавьте свои классы в свой проект composer.json:
"autoload": {
"psr-4": {
"Secsign\\Secsign\\": "htdocs/typo3conf/ext/secsign/Classes/"
}
},
Теперь composer автоматически загружает классы из ваших проектов composer.json, ваши расширения composer.json даже не выполняются.
Final
кажется проще, но есть несколько причин, по которым стоит 1.