Chciałem uzyskać dostęp do konfiguracji aplikacji z widoku. Jak mogę to osiągnąć w ZF 2?Jak uzyskać dostęp do konfiguracji aplikacji z widoku w Zend Framework 2 (zf2)?
Odpowiedz
W rzeczywistości nie ma potrzeby uzyskiwania dostępu do konfiguracji aplikacji w widoku. W MVC widoki odpowiedzialne za wyświetlanie/renderowanie danych (dane wyjściowe) i nie powinny zawierać logiki biznesowej ani aplikacji.
Jeśli naprawdę chcesz to zrobić, że można po prostu przejść do wyświetlenia w Twojej kontrolera coś takiego:
<?php
namespace YourModule\Controller;
use Zend\View\Model\ViewModel;
// ...
public function anyAction()
{
$config = $this->getServiceLocator()->get('config');
$viewModel = new ViewModel();
$viewModel->setVariables(array('config' => $config));
return $viewModel;
}
// ...
?>
to w pliku view.phtml;
<div class="foo">
...
<?php echo $this->config; ?>
...
</div>
Chociaż nie powinieneś mieć logiki biznesowej w swoim kontrolerze, konfiguracja może nadal wpływać na logikę renderowania/wyświetlania, np. wartość konfiguracyjna określa widok, jaki motyw powinien zostać wyświetlony. Nadal się zgadzam, że powinien to być kontroler, który przesyła wartości konfiguracyjne do widoku - tak drobnoziarnistego, jak to tylko możliwe - za pośrednictwem ViewModel, a nie do widoku pobierającego globalną konfigurację z ServiceManager na przykład. –
Powinieneś stworzyć pomocnika widoku.
config.php
<?php
namespace Application\View\Helper;
class Config extends \Zend\View\Helper\AbstractHelper
{
public function __construct($config)
{
$this->key = $config;
}
public function __invoke()
{
return $this->config;
}
}
Module.php lub theme.config.php
return array(
'helpers' => array(
'factories' => array(
'config' => function ($sm) {
return new \Application\View\Helper\Config(
$sm->getServiceLocator()->get('Application\Config')->get('config')
);
},
)
),
);
Następnie można używać zmiennych konfiguracyjnych w dowolnym widoku.
echo $this->config()->Section->key;
Z ZF 2.2.1 (nie jestem pewien, że to możliwe w poprzednich wersjach), można po prostu dodać pomocnika withtut wstrzykiwanie nic
# module.config.php
...
'view_helpers' => array(
'invokables' => array(
'yourHelper' => 'Application\View\Helper\YourHelper',
),
), ...
I napisz YourHelper
implementujący interfejs Zend\ServiceManager\ServiceLocatorAwareInterface
. Będziesz musiał zaimplementować dwie metody interfejsu (prosty setter i gettery). Możesz teraz uzyskać dostęp do lokalizatora usług i uzyskać konfigurację:
namespace Application\View\Helper;
class YourHelper implements Zend\ServiceManager\ServiceLocatorAwareInterface
{
public function __invoke()
{
$config = $this->getServiceLocator()->getServiceLocator()->get('Config');
// $config is the object you need
return $config;
}
public function getServiceLocator()
{
return $this->serviceLocator;
}
public function setServiceLocator(\Zend\ServiceManager\ServiceLocatorInterface $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
return $this;
}
}
Więcej informacji na http://robertbasic.com/blog/working-with-custom-view-helpers-in-zend-framework-2
pomocnika dostęp do config tutaj https://gist.github.com/elvisciotti/6592837
stworzyłem moduł ze sterownikiem wtyczki i widok pomocnika do odczytu konfiguracji w kontrolerach i widokach. GitHub link __ Composer link
Po instalacji za pomocą kompozytora można go z łatwością używać.
echo $this->configHelp('key_from_config'); //read specific key from config
$config = $this->configHelp(); //return config object Zend\Config\Config
echo $config->key_from_config;
- 1. Jak uzyskać dostęp do konfiguracji aplikacji Zend Framework ze sterownika?
- 2. ZF2: Zend Framework 2 - jak czynią wyjście bez układu
- 3. Zend Framework 2: podzapytania
- 4. Zend Framework 2 LDAP
- 5. Sesje Bootstrap w Zend Framework 2
- 6. OAuth w Zend Framework 2
- 7. Zend Framework 2 - Cookie Concept
- 8. Zend Framework 2: sql Podzapytanie
- 9. Zend Framework 2 Wyszukaj Lucene?
- 10. Zend Framework 2 struktura plików rzeczywistego świata
- 11. zend framework 2 stałe
- 12. Jak uzyskać dostęp do konfiguracji pakietu Symfony 2 spoza pakietu?
- 13. Jak dodać niestandardowy widok pomocników do Zend Framework 2
- 14. zend framework 2 AuthenticationService
- 15. Zend Framework 2 Przekierowanie
- 16. Jak dołączyć bibliotekę zewnętrzną do Zend Framework 2?
- 17. MultiSelect w Zend Framework 2
- 18. Jak dodać katalog pomocnika widoku (zend framework)?
- 19. W Zend Framework 2 RBAC lub ACL. Który jest zalecany?
- 20. Zend Framework 2 Nawigacja Sub-Sub menu
- 21. Jak korzystać z Zend \ Session w zf2?
- 22. Zend framework 2: Jak uzyskać dostęp do wartości konfiguracyjnej modułu ze sterownika
- 23. Zend framework 2 zalecany sposób obsługi błędów
- 24. Jak uzyskać dostęp do aplikacji?
- 25. Jak tłumaczyć etykiety formularzy w Zend Framework 2?
- 26. wiele tabel dla Zend Framework 2
- 27. Jak używać różnych w Zend Framework 2?
- 28. Puste wartości przekazane do weryfikatorów Zend framework 2
- 29. Zend Framework 2 - połączenie z bazą danych
- 30. 404 Błąd podczas korzystania Composer do pobrania Zend Framework 2
Przesłać go z działania kontrolera? Jeśli nie, utwórz pomocnika widoku i wstrzyknij mu konfigurację w taki sam sposób, jak ten przykład http://stackoverflow.com/questions/16082529/calling-a-method-in-model-from-layout-in-zendframework- 2/16082884 # 16082884 następnie wpisz swoje metody pomocnicze, aby uzyskać dostęp do tego, czego potrzebujesz. – Crisp
Jak uzyskać do niego dostęp z pomocnika widoku? –
Spójrz na przykład, który łączyłem. Zamień 'ModelService' na' config', a otrzymasz pomocnika, który jest proxy dla tablicy Config. Następnie wystarczy napisać metody dla pomocnika, który uzyskuje dostęp do tablicy i wywołać te w widoku. – Crisp