![]()
Debug-Output ist am Besten unique, damit man ihn nicht versehentlich mit regulärem Content verwechselt.
![]()
Debug-Output ist am Besten unique, damit man ihn nicht versehentlich mit regulärem Content verwechselt.
Folgendes Phänomen:
Wenn ich einen internen Fehler in einem Bundle provoziere (bsplw. durch Referenzieren eines nicht existenten Partials in einem Template), wird mir mein Error Template angezeigt.
Wenn ich allerdings eine nicht existente Route öffne (bsplw. http://example.com/does/not/exist), bekomme ich eine ResourceNotFoundException und eine NotFoundHttpException. Die NotFoundHttpException kann man ignorieren, so lange die ResourceNotFoundException noch da ist – das Internet schickt einen hier gerne auf den falschen Pfad und verweist auf Routingprobleme. Die ResourceNotFoundException tritt aber im Twig auf, wenn ein Template nicht gefunden wird. Dann stürzt alles ab, und die NotFoundHttpException kann nicht abschliessend behandelt werden.
Zum Debuggen kann man sich Symfony\Bundle\TwigBundle\Controller\ExceptionController.findTemplate() ansehen. Wenn das Template dort korrekt gefunden wird, sollte man sich dieses Template ansehen, wenn es von einem anderen Template erbt, muss auch dieses auffindbar sein.
Generell würde ich für custom error pages von der Beerbung von Bundle-Templates abraten.
Composer legt Bundles in lowercase benannten Ordnern ab:

Namespaces möchte man aber in CamelCase (hier: "Acme") haben:
|
1 |
namespace Acme\LocaleBundle; |
Was man jetzt wissen muss: Trägt man das Bundle in einen PSR-0-Autoloader ein, dann geht das nicht:
|
1 2 3 |
"autoload": { "psr-0": { "Acme\\": "deploy/vendor/server" } }, |
, da PSR-0 die Datei unter einem Dateipfad sucht, der dem Namespace entspricht (deploy/vendor/server/Acme/LocaleBundle), "Acme" aber zu "acme" wird. Unter OS X kein Problem, wenn das Dateisystem caseinsensitive ist (scheint der default zu sein? Kann mich da irren), auf einem Server aber schwierig 🙂 Lösung:
Will man nicht.

mit
|
1 2 3 |
"autoload": { "psr-0": { "Symfony\\": "src/" }, }, |
in der composer.json. Kann man machen, bläht aber die Verzeichnis- (und damit die Projekt-) Struktur unnötig auf.
🙂
Kurz vor Redaktionsschluss noch reingekommen: PSR-4 mit
|
1 2 3 4 5 6 7 8 |
"autoload": { "psr-0": { "": "deploy/src/server/php/", "SymfonyStandard": "deploy/app/" }, "psr-4": { "Acme\\CoreBundle\\": "deploy/vendor/server/acme/CoreBundle", "Acme\\LocaleBundle\\": "deploy/vendor/server/acme/LocaleBundle", ... } } |
Vorteil von PSR-4, wenn ich's richtig verstanden habe: Die Dateien können irgendwo liegen; der Namespace wird unabhängig vom Verzeichnisbaum nur durch die Angaben im PHP-Code vorgegeben. Empfehlenswert ist aus Übersichtsgründen eine Struktur, die sich trotzdem am Namespace orientiert, aber man muss zumindest auf den Case keine Rücksicht mehr nehmen.
PHP auf eine andere Version (bsplw. die des MAMP) umbiegen (in der .bash_profile):
|
1 2 3 4 |
# Mamp Pro 3: alias php='php -c /Library/Application\ Support/appsolute/MAMP\ PRO/conf/php.ini' # Mamp 2: alias php="/Applications/MAMP/bin/php/php5.5.10/bin/php" |
Wo liegt die php.ini?
|
1 |
$ php --ini | grep "Loaded Configuration File" |
Wo liegt das Verzeichnis für Erweiterungen?
|
1 |
cat /path/to/php/conf/php.ini | grep extension_dir |
Alle geladenen Module:
|
1 |
php -m |
Ist ImageMagick verfügbar?
|
1 |
php -r "print(class_exists('imagick'));" |
To be completed!
In manchem Umfeld sind git://-URLs gesperrt – so kann man stattdessen https:// verwenden:
|
1 2 |
git init git config --global url."https://".insteadOf git:// |
Danke, Orlando!
So in Szene gesetzt macht das richtig was her! Verblüffend offen (ausgerechnet...) und grün auch:
via, wobei: Nerdcore hat Details:
Das Teil ist ein Travel-Commercial von Rob Whitford für einen Reiseveranstalter in China
Ich hätte schwören können, dass ich die schon mal verlinkt habe, aber ich finde nix. Also:
\m/
Wer einen solchen oder ähnlichen Fehler bekommt, der möge das Verzeichnis ~/.vagrant.d löschen (und die neueste Vagrant-Version installieren, etc.)
Danke, Katrin!
Bekanntermaßen feiert der 1 Weltkrieg dieses Jahr sein Hundertjähriges. Dazu gibt es vermutlich drölf Projekte, allerdings sind mir bisher erst zwei (gute) über den Weg gelaufen:
Gerade in der Kombination bekommt man einen guten Eindruck über, ja, "die Entwicklung der Dinge". Wie schnell es gehen kann, gerade bei vielen beteiligten Parteien, sieht man bei @1914Tweets:
Russischer Zar in Telegramm an Kaiser Wilhelm II: Droht mit "äußersten Maßnahmen, die zum Kriege führen werden“.
— 1914Tweets (@1914Tweets) July 29, 2014
Die Generalmobilmachung Russlands tritt ab Mitternacht in Kraft. Nachricht verbreitet sich umgehend in ganz Europa.
— 1914Tweets (@1914Tweets) July 30, 2014
Deutschland stellt Russland ein Ultimatum: Zurücknahme der Generalmobilmachung binnen 12 Stunden. Ansonsten folgt deutsche Mobilmachung.
— 1914Tweets (@1914Tweets) July 31, 2014
Das Deutsche Reich ist jetzt faktisch eine Militärdiktatur.
— 1914Tweets (@1914Tweets) July 31, 2014
An der deutsch-russischen Grenze kommt es zu ersten Scharmützeln zwischen deutschen und russischen Grenzpatrouillen.
— 1914Tweets (@1914Tweets) August 1, 2014
Während man im Tagebuch einen punktuellen, subjektiven, aber tieferen Eindruck bekommt... so scheint die Stimmung bei Ernst Pauleit "jetzt" eher von Aufbruch und Betriebsamkeit, denn von Angst geprägt zu sein:
In der Stadt wogte und wallte es, als wäre Kirmes. [...] Essen und Trinken gab es in Menge. Zigarren und Zigaretten qualmten von morgens bis spät in die Nacht.
Das Tagebuch ist übrigens zusehends schlechter erreichbar, bei Gefallen also gerne spenden!
UPDATE
Ah, deshalb ist das so langsam: Ein Artikel auf SpOn
|
1 |
php app/console container:debug |
Auf die ausgegebenen Dienste kann per
|
1 |
$this->container->get('service_id'); |
zugegriffen werden, wobei $container vom Typ
\Symfony\Component\DependencyInjection\ContainerInterface
ist.