Ho un pacchetto Symfony in cui dovrò utilizzare una classe personalizzata. Questa classe non deve essere accessibile da tutti i siti Web, ma solo da un controller di questo pacchetto. Ho visto alcune soluzioni relative ai venditori, ma questo è abbastanza pesante e non è necessario nel mio caso. Qualcuno ha una soluzione più semplice?Come includere una classe personalizzata in un pacchetto Symfony?
risposta
La classe deve essere creata nel Acme\Bundle\Model
spazio dei nomi e cartella, non\Class
! Chi lo dice ?!
// ../src/Acme/Bundle/Model/Utility.php
<?php namespace Acme\Bundle\Model;
class Utility:
..
Utilizzo in controllori:
<?php ..
use Acme\Bundle\Model\Utility;
$x = new Utility(); // FINE!:)
Nome del file di (Utility.php
) deve essere uguale al nome della classe.
Ovviamente, l'ho detto, come ho usato la parola "Class" come esempio. Mi spiace che tu abbia riattaccato e perso il campione :) La posizione effettiva della classe non ha davvero nulla a che fare con il problema dell'OP. –
Sì, ti capisco. Dannazione :) – Croll
Questo è ciò che namespaces sono per.
Da php.net:
Quali sono gli spazi dei nomi? Nella definizione più ampia, gli spazi dei nomi sono un modo per incapsulare gli oggetti.
In poche parole, includere lo spazio dei nomi in cima alla vostra personalizzato classe.
src/Acme/DemoBundle/Modello/MyClass.php
<?php
namespace Acme\DemoBundle\Model;
class MyClass { // ...
e utilizzarlo nel vostro controller:
src/Acme/SomeOtherBundle/Controller/DefaultController.php
<?php
namespace Acme\SomeOtherBundle\Controller;
// ...
use Acme\DemoBundle\Model\MyClass; # can be used in any class in any bundle
// ...
class DefaultController extends Controller { // ...
il '.php' alla fine non è necessario, poiché ogni file in' src/'diventa caricare in automatico. –
@Pazi non ha prestato attenzione, buona cattura, modificato –
Grazie per la risposta. L'ho fatto, ma in effetti, non ho idea di dove si trovi il file php della classe, e non so come includerlo ... (autoloads?) – maxime
- 1. Symfony includere parziale dalla cartella personalizzata
- 2. Come rinominare un pacchetto in symfony?
- 3. Autoloading di una classe in Symfony 2.1
- 4. come includere una directory nel pacchetto debuild
- 5. Symfony 2 - Come eliminare un pacchetto?
- 6. Importare una classe personalizzata in Java
- 7. Come posso contribuire a un pacchetto Symfony di terze parti?
- 8. Utilizzo di una classe personalizzata in un tema Wordpress
- 9. In Symfony, come posso usare url_for helper in una classe?
- 10. Come posso includere un pacchetto di composizione in php semplice?
- 11. Come scrivere una classe UItextField personalizzata
- 12. Matrice di una classe personalizzata come proprietà
- 13. Come memorizzare una classe personalizzata usando CoreData
- 14. Come includere css dalla cartella risorse in symfony 2
- 15. Symfony 2 come importare file MENO da un altro pacchetto
- 16. Caricamento di un pacchetto R da una directory personalizzata
- 17. Come includere] (parentesi quadra destra) in una classe di caratteri
- 18. Creazione di una classe String personalizzata
- 19. Come creare un metodo println/print per una classe personalizzata
- 20. Come si dichiara un array con una classe personalizzata?
- 21. Includere un '%' in una NSString?
- 22. Pacchetto menu Knp Elemento corrente Symfony 2
- 23. Symfony 2 - Dove devo inserire una classe di utilità?
- 24. Gonfiare un layout xml in una classe di visualizzazione personalizzata
- 25. Symfony2: "Errore irreversibile: servizio di classe ..." durante il tentativo di includere una classe come servizio in config.yml (TCPDF)
- 26. Come salvare un'istanza di una classe personalizzata in onSaveInstanceState?
- 27. Importa classe Java personalizzata
- 28. Come includere configurazione personalizzata per ambiente diverso in laravel-4
- 29. Come posso ottenere servizi (dipendenze) in una classe personalizzata
- 30. Caricamento di ogni classe in un pacchetto
'spazio dei nomi Acme \ MyBundle \ Class' .. per utilizzare:' use Acme \ MyBundle \ Class \ MyClass.php' –