Open-source code of the knpbundles.com website, written in Symfony2.
Any ideas are welcome!
Please note that this service was previously called Symfony2Bundles but we had to change the name due to trademark issues.
git clone git://github.com/KnpLabs/KnpBundles.git
To configure your database in your development environment, copy
/app/config/parameters.yml.dist
to /app/config/parameters.yml
and
edit it according to your database settings.
If you want to use github connect locally, you'll need to create an app on github with the callback:
http://yourlocalurl/login/check-github
And update the parameters.yml with the Client ID and Secret.
If you also want to use sensio labs connect locally, you'll need to create a client on sensio labs connect with the callback:
http://yourlocalurl/login/check-sensio
And update the parameters.yml with the Client ID and Secret.
curl -s http://getcomposer.org/installer | php
php composer.phar install
php app/console doctrine:database:drop --force
php app/console doctrine:database:create
php app/console doctrine:schema:create
php app/console --env=test doctrine:database:drop --force
php app/console --env=test doctrine:database:create
php app/console --env=test doctrine:schema:create
php app/console doctrine:fixtures:load
php app/console --env=test doctrine:fixtures:load
phpunit -c app
./bin/behat @KnpBundlesBundle
php app/console doctrine:migrations:diff
php app/console doctrine:migrations:migrate
php app/console cache:warmup
We rely on RabbitMQ to update bundles:
- The main server produces messages saying "Hey, we should update this bundle"
- The consumers read these messages and update them
To launch a consumer, do:
php app/console rabbitmq:consumer update_bundle
Note that you will need a functional rabbitmq server − Follow the instructions in this page to install it.
php app/console kb:populate
This can take a long time. GitHub API is limited to 60 calls per minute, so the commands needs to wait.
php app/console kb:update:bundles
This can take a long time but should be run to trigger update on all bundles when this is needed.
We use Solr and its PHP client Solarium to search bundles.
To install SOLR follow the steps listed in this document. Use the default Jetty server included with SOLR. The default directory used for the installation is 'opt/solr/example'. Copy the recommended configuration and schema found here to your solr/conf directory.
You can run SOLR using:
php app/console kb:solr:start
See bin/prepare-test-solr.sh script Bundles will be automatically indexed on next update, or you can force indexing by console command.
If you have Solr up and running, simply do:
php app/console kb:solr:index --verbose
This will index all bundles.
php app/console kb:sitemap:generate --spaceless=1
Will create sitemap.xml and sitemap.xml.gz in web directory. Sitemap includes bundles and user profiles