Zaczynam od projektu Symfony2. Znam podstawy ramowe, ale mam pytanie: Gdzie jest właściwe miejsce do tworzenia klas pomocniczych, które tworzę dla pomocy lub dla logiki biznesowej?Symfony2 gdzie umieścić niestandardowe klasy pomocników
Odpowiedz
Odpowiedź Maxa jest prawidłowa. Jednak kwestionuję ścieżkę, którą poleca dla twojego kodu.
Poniższe klasy i pliki mają specyficzne emplacements:
serwis kontenerowy Extensions (należą) wstrzykiwanie zależności/
z http://symfony.com/doc/current/cookbook/bundles/best_practices.html
To mówi swoje usługi powinny być umieszczone w folderze o nazwie "DependencyInjection", a nie "Usługi". W całości, należy src/Foo/BarBundle/wstrzykiwanie zależności
mówię to jako ktoś, że gdyby były i właśnie skończył przesuwając je wszystkie do tego ostatniego (!)
Mylisz się, musisz przechowywać rozszerzenia DI w DependencyInjection, a nie same usługi. http://symfony.com/doc/current/best_practices/business-logic.html – PachinSV
Zgadzam się z @PachinSV. Ta strona wyraźnie wspomina o tym: http://symfony.com/doc/current/cookbook/bundles/extension.html –
Możesz utworzyć niestandardowe klasy w swoim Pakiecie, takie jak w folderze Pomocnik/.. Jednak, aby użyć tych pomocników w kodzie, musisz zdefiniować te Pomocniki w pliku opisu usługi (np. services.xml) ... Następnie możesz użyć $ container-> get ('your_helper') ->
Najlepszym sposobem na utrzymanie logiki biznesowej jest stworzenie usługi do obsługi całej logiki. Tak będzie w:
src/Foo/BarBundle/Service
i trzeba wezwać serwis w services.yml
.
Niedawno zrobiłem jakieś małe prace nad istniejący projekt Symfony2. Jak opisał odpowiedź od Tuong Le, tworzę klas pomocników w katalogu części wiązki i nazwa klasy z Helper przyrostkiem Helper
czyli klasa pomocnika znajduje się pod adresem:
src/MyBundle/Helper/MyUtilHelper.php
mogę używać MyUtilHelper
klasę w moim zestawie bez zawijania pojemnik usługowy, tj. nie musiałem dzwonić.
$container->get('my_util');
Nie wiem, czy istnieje specjalna konfiguracja. w mojej konfiguracji; ktoś już to przygotował i właśnie dodałem nową funkcjonalność.
Co @Adam mówi jest złe, trzeba przechowywać Dependency Injection Rozszerzenia w katalogu DependecyInjection, nie sam usług. W dokumentacji jest napisane, że możesz przechowywać (niestandardowe) klasy logiki biznesowej w dowolnym miejscu.
http://symfony.com/doc/current/best_practices/business-logic.html
Według oficjalnej dokumentacji - w szczególności - Symfony Best Practices - należy przechowywać swoje usługi w Utils folderu pod src. Wierzę, że jest to poprawna metoda, niezależnie od tego, czy chcesz, czy nie, udostępnić funkcjonalność dostarczaną przez usługi pakietu innym aplikacjom za pośrednictwem Service Container.Ponadto możesz przechowywać klasy pomocnicze w dowolnym miejscu, które uznasz za stosowne. Dotyczące odpowiedzi @Adam Knowles i @PachinSV - nie są całkiem słuszne, ponieważ nie odpowiadają na twoje pytanie - "Gdzie jest właściwe miejsce do tworzenia klas pomocniczych, które tworzę dla pomocy lub dla logiki biznesowej?" lub "Gdzie przechowywać klasy, które chcę zarejestrować i używać za pośrednictwem Service Container" - ale nie gdzie umieścić pakiet Extension class - którego głównym celem jest dostarczenie informacji o konfiguracji, która powinna być automatycznie ładowana ze swojego pakietu do aplikacji Kontener serwisowy podczas procesu rozruchu rozruchu jądra.
- 1. Gdzie umieścić podstawowe zasoby w Symfony2?
- 2. Gdzie należy umieścić niestandardowe pliki .d.ts?
- 3. Elixir phoenix gdzie należy umieścić globalnych kontrolerów pomocników
- 4. Gdzie mogę umieścić klasy filtrów laravel 4?
- 5. Backbone.js - Gdzie zdefiniować pomocników widoku?
- 6. Symfony2 - Gdzie powinienem umieścić pliki przesłane przez użytkowników?
- 7. Symfony2 & Doctrine2: Utwórz adnotacje niestandardowe
- 8. Adnotacje niestandardowe dla obiektów Symfony2
- 9. Gdzie umieścić skrypty PowerShell?
- 10. gdzie umieścić ActiveModel :: Validator?
- 11. Gdzie umieścić próbę złapać
- 12. Gdzie umieścić plik właściwości?
- 13. CakePHP - gdzie umieścić logikę usługi
- 14. Gdzie mogę umieścić moje drwiny?
- 15. gdzie umieścić Klasy zdefiniowane przez użytkownika w Rails
- 16. wskazówki, gdzie umieścić klasy w aplikacjach Railsowych, które nie pasują do siebie.
- 17. ServiceStack, gdzie umieścić logikę biznesową?
- 18. Autoloader oczekuje klasy Symfony2
- 19. Gdzie należy umieścić pustą klasę podstawową?
- 20. Pryzmat WPF - gdzie umieścić zasoby?
- 21. Gdzie umieścić impliciteWait w kątomierzu?
- 22. gdzie umieścić DTD wewnątrz paczki
- 23. Gdzie umieścić autora w cytacie?
- 24. Szyny - gdzie umieścić pliki danych?
- 25. Gdzie umieścić test jednostkowy projektu
- 26. Gdzie powinienem umieścić wtyczkę .vim?
- 27. WPF MahApps.Metro - Gdzie umieścić ResourceDictionaries?
- 28. Gdzie umieścić "&" w parametrze funkcji?
- 29. Gdzie umieścić funkcję XSL w dokumencie XSL?
- 30. Symfony2 i Doctrine: Utwórz niestandardowe zapytanie SQL
znasz ze względu na zakończenie ... byłoby miło dla reszty społeczności, jeśli faktycznie przyznasz poprawną odpowiedź na jedną z poniższych odpowiedzi, a następnie określisz, w jaki sposób wdrożyłeś rozwiązanie i czy zadziałało. na koniec dobrze dla ciebie. Tyle, że chodzi o dawanie i branie, a nie tylko przyjmowanie – abbood