When you start with symfony you probably use the Symfony Standard Edition.
This is a quite good start but there are somethings that helped me and might help you aswell.
Since every beginning is “schwer” :)
So here there are.
Continue reading “Symfony2 Starter Tweaks”
[Symfony 2] composer.json for a assumed-stable symfony 2 distribution
This small composer.json file is used in a project i am working on atm, feel free to use it at own risk. I will provide non-periodical updates and hopefully soon a full upgrade to symfony 2.1.x including doctrine orm 2.2.x.
I still did not get the point regarding dependency resolution, so i simply “composed” the composer file by writing down my own requirements (“i want only the hottest, newest stuff!!”, then tracked down the error messages, removing them by explicetly writing down the missing dependencies by using the latest “dev-*” versions. After that i tried to run the project, which actually did not work, but selective downgrade of some of the bundles (framework, security-extra blahblah) finally did the job. Continue reading “[Symfony 2] composer.json for a assumed-stable symfony 2 distribution”
run JavaScript code in PHP 5.3 with the v8js extension
…for some reason i needed to get t h i s to work before going to sleep.
I’m running OSX 10.7.3 with macports which usually does the job, but Google’s V8 Javascript Engine is not available as a port yet. Continue reading “run JavaScript code in PHP 5.3 with the v8js extension”
modulo in Twig
Ever wondered how to use the modulo operator in twig, the template engine of symfony?
Actually its like in PHP:
{{ 11 % 7 }}
As described here
But i guess for most use cases modulus is used to check if a number is divisible by another number.
Therefore Twig has the very conveniant divisible by test function.
{% if loop.index is divisible by(3) %}
Silex and MongoDB simply
Using MongoDB in your Silex Project is quite easy.
I will show this with my Superleansilexplate and will integrate it there as an example.
Since i dont want to integrate MongoDB in Superleansilexplate it will just become an additional gist.
Given you have some smaller amount of data like a counter that needs to be stored or other loose coupled datasets, we simply speak to MongoDB “directly” and store the data via Doctrine MongoDB Abstraction Layer.
Since i presume the Data / Document Structure isnt that complex we dont use Doctrine MongoDB ODM (the Object Document Mapper).
If you want to use it instead, try this Silex Extensions.
Expeditions in the Cloud
Caution: Scepticism ahead!
So i’d like to share some of my experiences in the cloud since i am still trying to figure out if it its worth for me or if i am better suited with an VPS.
Maybe somebody feels like feedbackin.
I tried PHPFog for PHP and no.de by joyent for node.js.
First i have to admit: yes i only tried the free models and of course they are limited and because its free you cant expect to get it all, right?
Yes and thats true.
With PHPFog i set up an app based on symfony 1.4. After some inital problems due to some bugs on PHPFog side, i got it running.
I really like to mention the kind and immediate chat support by PHPFog. It really made me feel like dealin with humans and not only machines. Big up!
By then everything felt really smooth with git deploy, configurations, mysql setup etc.
But i had to shut down the app again, because there are restrictions to PHP which killed the app like disabling “file_get_contents for remote URLS”, probably only in the free model. But that killed it for me at that point.
So read this carefully before going to cloud: http://docs.phpfog.com/index.php/features/article/shared_vs_dedicated
I guess with dedicated hosting you get more power, sure.
Silex and the HTTP_CACHE
The HTTP_CACHE resp. the reverse proxy of Symfony is a pretty cool thing.
And as it is build-in Silex it can speed up the already fast micro framework massivly,
wich is good for me, as i am mainly workin with Silex right now.
To enable it you have to register it first like its shown in the docs:
$app->register(new Silex\Provider\HttpCacheServiceProvider(), array( 'http_cache.cache_dir' => __DIR__.'/cache/', ));
Also provide the writable cache dir.
Continue reading “Silex and the HTTP_CACHE”
Enable Twig-Extensions in Silex
UPDATE
Please have look here for a updated version.
Note: its about Twig-extensions not about the former “Silex Twig Extension”, this now called TwigServiceProvider.
First fetch the Twig-extensions code and put them in your vendor dir:
git submodule add git://github.com/fabpot/Twig-extensions.git vendor/Twig-extensions/fabpot git submodule init git submodule update
Then register the autoloader by using registerPrefixes:
$app['autoloader']->registerPrefixes(array(
'Twig_Extensions_' => array(__DIR__.'/../vendor/Twig-extensions/fabpot/lib')));
Sending invalid Unicode via socket.io
Well you can try to, but it will end up almost probably in an disconnect which is caused by the browser.
As i have learned here.
Given you have a string which contains invalid unicode like:
![]()
This will trouble the browser and the socket connection.
If you prepare your json with PHP and json_encode the Unicode will be escaped to some strings like these:
\ud83d\ude31\ud83d\ude31\ud83d\ude04\ud83d\ude04\ud83d\udc9c\ud83d\udc9c\ud83d\udc4a
But on clientside it will still result in invalid Unicode.
Continue reading “Sending invalid Unicode via socket.io”
Silex Starter Stubs
There are several preconfigured Silex Apps on github. They let you start your Silex project in no time, which is good.
This makes Silex an even more simple rabbithole into the symfony2 world.
I started one myself and had a close look on the others, so i thought i share this.
They all differ a bit so you must choose what fits your needs the best.
They all follow some kind of “best practise” structure, some more, some less.