Я использую Laravel 3 (новичок в нем). У меня есть вспомогательный класс API, который я использую в качестве библиотеки. Я хочу, чтобы этот класс был создан, поэтому я могу использовать его во всех моих моделях для доступа к API. Я изо всех сил пытаюсь понять, как это сделать, не создавая экземпляров в каждой модели. Пример был бы потрясающим. Благодарю.экземпляр класса для использования во всех моделях в Laravel3
ответ
Существует несколько способов сделать это, самым простым может быть просто создание модели base
, где вы создаете экземпляр класса вспомогательных API, а затем расширяете эту базовую модель для всех моделей, к которым вы хотите получить доступ. API.
Это может выглядеть примерно так:
// base.php
class Base {
public static function api()
{
return new YourApiClass;
}
}
// user.php
class User extends Base {
public static function name()
{
return parent::api()->callApiMethod();
}
}
Вы можете также использовать Laravel 3's IoC container, что может быть лучшим выбором в зависимости от того, что вы делаете.
Используйте контейнер IoC.
Инстанцировать ваш класс:
IoC::register('mailer', function()
{
$transport = Swift_MailTransport::newInstance();
return Swift_Mailer::newInstance($transport);
});
И тогда, когда вам нужно получить доступ к экземпляру вы просто должны:
IoC::instance('mailer', $instance);
Артикул: http://laravel.com/docs/ioc
Как его решить, чтобы я мог использовать экземпляр во всех методах класса? Конструктор? – pgtips
- 1. Функция Symfony доступна во всех моделях
- 2. экземпляр класса для всех ViewControllers
- 3. Идентификатор пользователя во всех моделях просмотра
- 4. отражение во всех моделях данных ember
- 5. экземпляр класса без вызова супер во всех конструкторах
- 6. Как написать экземпляр родительского класса из подкласса в моделях Django?
- 7. поля во всех подклассов класса
- 8. Просмотр изменений во всех моделях просмотра в форме
- 9. Стратегия обработки события истечения токена во всех моделях просмотра
- 10. Slim Framework - экземпляр одного класса для всех маршрутов
- 11. Как приложения выглядят одинаково во всех моделях iPhone и Ipad
- 12. Наличие компонента Ax 2012 во всех слоях и моделях
- 13. Рельсы, где следует использовать метод во всех моделях
- 14. Django Rest Framework - Искать текст во всех моделях и полях
- 15. AdMod один экземпляр во всех ViewControllers
- 16. Loop/отражение всех свойств во всех моделях EF для установки типа столбца
- 17. Как получить экземпляр webdriver для использования одного экземпляра во всех файлах классов
- 18. Поиск в процедурах/функциях во всех dbs для использования таблицы
- 19. Как получить вероятность на экземпляр в моделях классификаций в spark.mllib
- 20. Laravel3 group_by + sum + paginate?
- 21. Код повторного использования во всех моих таблицах
- 22. Java экземпляр JNI магазина класса для последующего повторного использования
- 23. Способы повторного использования в нескольких моделях Rails
- 24. Изменение значения использования во всех функциях (NASM)
- 25. Экземпляр класса в конструкторе
- 26. Переопределить метод сохранения для каждого класса в моделях. Модел
- 27. Глобальный экземпляр класса
- 28. исключить метод в модуле для использования в различных моделях
- 29. Запись данных во времени в моделях Django
- 30. Найти значение переменной во всех экземплярах класса
Это помогает, спасибо. Что делать, если я использовал контейнер IoC в базовом классе внутри конструктора, а затем попытаюсь использовать его в других моделях? – pgtips
Уверен, вы могли бы это сделать. [Ниже приведена дополнительная информация о контейнерах IoC] (http://codehappy.daylerees.com/ioc-container), которые могут пролить некоторый дополнительный свет на то, где и как их использовать. – tplaner
Отлично, спасибо большое, оцените руководство! – pgtips