When comparing Flight vs Silex, the Slant community recommends Silex for most people. In the question“What are the best PHP frameworks?” Silex is ranked 14th while Flight is ranked 16th. The most important reason people chose Silex is:
The thing that makes Silex stand out from other PHP microframeworks is the fact that it's built using some of Symfony2's components. Making it quite powerful but still lightweight enough to be considered a true microframework.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Uses static methods
Since Flight uses static methods, it does not require for the application class to be instantiated.
Pro Open source
Flight is open source and is released under the MIT license.
Pro Filters
A unique feature of Flight is something that the author calls filters. Filters are functions which can be executed before and after any other function and can change the parameters and the output of said function.
This feature is used instead of hooks which in other frameworks are used to execute code into different parts of the application's life-cycle.
Pro Built on top of Symfony components
The thing that makes Silex stand out from other PHP microframeworks is the fact that it's built using some of Symfony2's components. Making it quite powerful but still lightweight enough to be considered a true microframework.
Pro Open source
Silex is open source and is licensed under the MIT license.
Pro Simple and elegant DI container
Based on Pimple, Silex has a simple Dependency Injection container that consists of just one file and one class.
Pro Testable
Silex makes use of Symfony2's HttpKernel which is used to abstract requests and responses. This in turn, makes it very easy to test apps created with the framework.
Pro Extensible
By using Pimple, the Silex application extends the Pimple class, which in turn is nothing more than an implementation of the ArrayAccess interface that has been a part of PHP since version 5.0.
This makes it possible to use an instance of the Application class as if it were an array. Like so:
$app = new Silex\Application();
$app['config'] = new Config($config_path);
This gives developers a great deal of flexibility when injecting dependencies and when testing.
Cons
Con Cannot use ArrayAccess
The fact that it uses static methods means that it's impossible for Flight to make use of ArrayAccess, which in turns means that it cannot inject dependencies easily.
Con Documentation is not very extensive
The documentation for this framework is average, it's helpful mostly. But it is not extensive enough to cover everything in detail unfortunately.