21 Jun 2018

feedSymfony Blog

CFP deadlines for SymfonyLive London and SymfonyCon Lisbon are extended until June 25th!

As we announced our mentoring program for speakers a few days ago, we decided to extend our CFP deadlines to enable everyone to submit a talk proposal on time. We don't want you to miss the occasion to speak at a Symfony conference. You can now submit a talk proposal for SymfonyLive London and SymfonyCon Lisbon until June 25th!

We would like to thank all the people who already submitted a talk proposal, we received a lot of very good talk proposals, that's really great, thank you all! But we'd like to raise the talks submission to the entire community and enable potential new speakers to submit. For example, at this year's edition of SymfonyLive Paris conference, 30% of the speakers were brand new speakers, people who never spoke at a Symfony conference before or never spoke at all at a conference before. It was their first time on stage and their talks were awesome! They did it so well!

We thus would like the entire Symfony community to spread the word about our CFP to make sure that no one will miss this opportunity! We also encourage you to tell us who you think will be the best to speak at the conference about a specific topic or just because you think their Symfony experience must be shared to everyone. Or just tell us what topics you're eager to listen to. This year, it's more than a Call for Papers it's a Call to the Community! Either you or someone else can be a speaker at a Symfony conference.

We created the mentoring program for speakers from the perspective of helping all the new speakers to take the plunge. How does it work?

This program is aimed to help unexperienced and experienced speakers who want to speak at our conferences. You have an idea but you don't know how to outline it or you even don't know where to start, then you can count on us to help you. We help you from scratch! It all starts with your motivation! If you're motivated to speak on stage and have a Symfony experience to share or best practices or tips, don't hesitate to submit a talk proposal. Unexperienced speakers are more than welcome! The mandatory requirement is that you need to speak comprehensible English (well of course, another very important requirement is that your talk idea must be about Symfony). We'll help you create your talk content and train yourself to speak on stage. Our team will review your talk and we'll organize online training sessions to listen to your talk. Several rehearsals can be organized, we want to make sure you feel pleased and confident about your talk.

If you think that speaking on stage is not for you yet, you can anyway contribute to our CFP! Tell us in the comments of this blog post what topics or speakers you want to see on the schedule. This will help us during the speaker selection to create the conferences' schedules.

Submit now a talk proposal for SymfonyLive London, SymfonyCon Lisbon until June 25th and SymfonyLive USA until July 8th.

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

21 Jun 2018 12:37pm GMT

17 Jun 2018

feedSymfony Blog

A week of symfony #598 (11-17 June 2018)

This week, development activity focused on the Cache component, which gained sub-second accuracy for internal expiry calculation and stampede protection via probabilistic early expiration. Meanwhile, the diversity team made a call for sponsors for a training needed by the CARE Team. Lastly, the Call for Papers deadlines for Symfony conferences are approaching fast, so you should submit your proposals as soon as possible.

Symfony development highlights

2.8 changelog:

3.4 changelog:

4.1 changelog:

Master changelog:

Newest issues and pull requests

They talked about us

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

17 Jun 2018 7:33am GMT

15 Jun 2018

feedSymfony Blog

Call for Papers currently open for the upcoming Symfony conferences

Several conferences are organized at the second semester of 2018, mark your Symfony calendar now and join us there:

All Call for Papers are currently open! You can submit your talk ideas and enjoy the conference from the other side of the stage by becoming a Symfony speaker. Sharing your experience is the best way to help the community learn new tips and tricks, you probably have something to share so why won't you be a speaker?

If you've never been a speaker before, we have a mentoring program for speakers! This program is aimed to help inexperienced and experienced speakers who want to speak at our conferences. Basically, if you have an idea but you don't know yet how to create a talk with this idea, we can help you. Submit your talk proposal and mention in your talk comments that you'd like to integrate our mentoring program! If your talk proposal is selected on the schedule, our team will help you build your dream talk. Submit all the talk ideas you want to share with the Symfony community and we'll work with you!

If you don't have ideas yet but still would like to speak, we might have some talk proposals for you. But if you're not ready or don't plan to speak yet but are dreaming to have a specific person or topic on the schedule, please send us your proposals. We're here to help you!

Submit now your ideas at our Call for Papers:

See you very soon at a Symfony conference!

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

15 Jun 2018 4:01pm GMT

CARE team training

Following the announcement of the CARE team members by Fabien, we would now move forward to organize a training to ensure that we are well prepared to handle incident reports. For this training we intend to draw upon the expertise of Sage Sharp from Otter Tech.

The training will be provided online. A training requires at least 5 attendees but up to 14 attendees can participate in one training. The training is a 3 hour workshop that includes:

Currently our CARE team consists of 3 people, but we intend to also ensure we have a few additional people trained so that ideally every official Symfony event has more than one trained person physically at the event.

That being said, of course a professional training costs money. One seat in the training costs $350. Now we looked at different ways to get sufficient funds to pay for this. So far we have done a few one-off donation drives in the past and we would like to take the same approach here. The reason to stick with one-off versus continuous collection of donations is that managing a budget can be a slippery slope as an open source project.

To keep things simple, we are therefore asking individuals or companies to come forward and contact me if they are willing to pay for one or more seats. Once I have a list of confirmed donors, I will ask Sage Sharp to invoice each of them separately. As soon as those invoices have been paid, we can schedule the training. All donors that want will be named in the blog post following the training where the attendees will have a chance to reflect on what they learned during the training.

Our goal is to at least get 5 seats paid, but if we manage the 10 seats it would be even better. That being said, it might prove to be a challenge to get all the relevant people to agree on one training day, so we might have to split it up into two training sessions with 5 people. Also beyond the people from the CARE team, we don't yet have a specific list of people to add to the training. It really depends on how many seats we get sponsored, so lets cross that bridge when we get there. However any conference that has a dedicated Symfony track should also get in contact with me and potentially we can include some representatives from your conference in the training.

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

15 Jun 2018 8:15am GMT

10 Jun 2018

feedSymfony Blog

A week of symfony #597 (4-10 June 2018)

This week, development activity focused on fixing the first reported issues about the Symfony 4.1 stable version. Meanwhile, work on Symfony 4.2 already started with the addition of a ServiceSubscriberTrait and the improvement of the performance of some Dependency Injection passes. Lastly, the Call for Papers for SymfonyCon 2018 conference was announced.

Symfony development highlights

2.8 changelog:

3.4 changelog:

4.1 changelog:

Master changelog:

Newest issues and pull requests

They talked about us

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

10 Jun 2018 8:09am GMT

04 Jun 2018

feedSymfony Blog

SymfonyCon Lisbon: only 100 early bird tickets available!

We're so happy to announce SymfonyCon Lisbon 2018! We've just released the official website, the international Symfony conference will be held at the Lisbon Mariott Hotel on December 6-8!

Come to attend SymfonyCon Lisbon, conference days are on December 6th and 7th, and the hackday is on December 8th. Come for the conference, stay for the hackday! A lot of surprises are waiting for you, don't miss the event.

Early bird to register to the conference is already available but limited to the first 100 attendees! If you want to enjoy it, hurry up to register before there are no early bird tickets left!

Call for Papers is also open, until June 22nd. If you want to speak at the SymfonyCon, send us your talk proposals. We are looking for highly technical talks related to Symfony and its ecosystem and original talks that haven't been delivered in previous conferences. All criteria regarding the CFP are listed on the website. Don't hesitate to send more than one proposal to increase your chances of being selected.

Workshops will be organized before the conference, on December 4th and 5th. Grab your early bird combo ticket for workshop and conference to get a 20% discount!

We hope to see the entire Symfony community at SymfonyCon Lisbon, and we'd like to thank you for your involvement with Symfony.

See you in December!

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

04 Jun 2018 7:30am GMT

03 Jun 2018

feedSymfony Blog

A week of symfony #596 (28 May - 3 June 2018)

This week, Symfony 4.1.0 was released, which includes more than 200 big and small new features. In addition, the registration for the SymfonyCon Lisbon 2018 conference opened with the first 100 early bird tickets available.

Symfony development highlights

3.4 changelog:

4.1 changelog:

Master changelog:

Newest issues and pull requests

They talked about us

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

03 Jun 2018 7:47am GMT

30 May 2018

feedSymfony Blog

Symfony 4.1.0 released

Symfony 4.1.0 has just been released. Here is a list of the most important changes:

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

30 May 2018 1:08pm GMT

Symfony 4.1 curated new features

Symfony 4.1.0 is going to be released later today. As for any other Symfony minor release, our backward compatibility promise applies and this means that you should be able to upgrade easily without changing anything in your code.

We've already blogged about the great 4.1 new features, but here is a curated list of the most relevant changes (this version has a total of 200 new small and big features):

New Components

  • Messenger (sroze) #24411 improved by many other pull requests:
    • Allow to scope handlers per bus (ogizanagi, sroze) #27275
    • Uses custom method names for handlers (sroze) #27034
    • Add debug:messenger CLI command (ro0NL, sroze) #26803
    • Support configuring messages when dispatching (ogizanagi) #26945
    • Add a time limit receiver (sdelicata) #27130
    • Add a memory limit option for ConsumeMessagesCommand (sdelicata) #26975
    • Define multiple buses from the framework.messenger.buses configuration (sroze) #26864
    • Allow to configure the transport (sroze) #26941
    • Add AMQP adapter (sroze) #26632
    • Add a MessageHandlerInterface (multiple messages + auto-configuration) #26685 (sroze)
    • Add a middleware that validates messages (Nyholm) #26648
    • Add a middleware that wraps all handlers in one Doctrine transaction. (Nyholm) #26647
    • Clone messages to show in profiler (Nyholm) #26650


  • Add box-double table style (maidmaid) #26693
  • Add box style table (maidmaid) #25301
  • Modify console output and print multiple modifyable sections (pierredup) #24363
  • Add option to automatically run suggested command if there is only 1 alternative (pierredup) #25732


  • Validate env vars in config (ro0NL) #23888
  • Add a simple CSV env var processor (dunglas) #25627
  • Allow binary values in parameters (bburnichon) #25928
  • Anonymous services in PHP DSL (unkind) #24632
  • Add support for variadics in named arguments (PabloKowalczyk) #24937


  • Add choice_translation_locale option for Intl choice types (yceruto, fabpot) #26825
  • Add a data_help method in Form (mpiot, Nyholm) #26332
  • Ability to set rounding strategy for MoneyType (syastrebov) #26767


  • Add PSR-11 "ContainerBag" to access parameters as-a-service (nicolas-grekas, sroze) #25288
  • Add ControllerTrait::getParameter() (chalasr) #25439
  • Add support to 307/308 HTTP status codes in RedirectController (ZipoKing) #26213
  • Deprecate bundle:controller:action and service:method notation (Tobion) #26085
  • Allow fetching private services from test clients (nicolas-grekas) #26499
  • Add command to delete an item from a cache pool (pierredup) #26223
  • framework.php_errors.log now accept a log level (Simperfit) #26504
  • Keep query in redirect (Simperfit) #26281
  • Add the ability to search a route (Simperfit) #26121
  • Add cache.app.simple psr simple cache (dmaicher) #25710
  • Add email_validation_mode option (xabbuh) #25478
  • Add atom editor to ide config (lexcast) #25415


  • Add a migrating session handler (rossmotley) #26096
  • Add HeaderUtils class (c960657) #24699
  • Split FileException into specialized ones about upload handling (fmata) #26475
  • RedisSessionHandler (dkarlovi) #24781


  • Introduce signaled process specific exception class (Soullivaneuh) #25775
  • Make PhpExecutableFinder look for the PHP_BINARY env var (nicolas-grekas) #25629
  • Create a "isTtySupported" static method (nesk) #25142


  • Allow no-slash root on imported routes (nicolas-grekas) #26284
  • Allow inline definition of requirements and defaults (nicolas-grekas) #26518
  • Implement i18n routing (frankdejonge, nicolas-grekas) #26143
  • Match 77.7x faster by compiling routes in one regexp (nicolas-grekas) #26059
  • Parse PHP constants in YAML routing files (ostrolucky) #25293


  • Cache the normalizer to use when possible (dunglas, nicolas-grekas) #27049
  • Allow to access to the context and various other infos in callbacks and max depth handler (dunglas) #27017
  • Added a ConstraintViolationListNormalizer (lyrixx) #22150
  • Ignore comments when decoding XML (q0rban) #26445
  • Add a MaxDepth handler (dunglas) #26108
  • add a constructor argument to return csv always as collection (Simperfit) #25218
  • add a context key to return always as collection for XmlEncoder (Simperfit) #25369
  • Fix security issue on CsvEncoder about CSV injection (welcoMattic) #24508
  • default_constructor_arguments context option for denormalization (Nek-) #25493
  • Serialize and deserialize from abstract classes (sroze) #24375
  • Parse PHP constants in YAML mappings (ostrolucky) #25294


  • Make csrf_token() usable without forms (xabbuh) #25197
  • Add priority to twig extensions (Brunty) #24777
  • Do not normalize array keys in twig globals (lstrojny) #26770
  • Deprecate "false" in favor of "kernel.debug" as default value of "strict_variable" (yceruto) #25780


  • Allow using custom function inside allow_if expressions (dmaicher) #26660
  • Deprecate AdvancedUserInterface (iltar) #23508
  • Add configuration for Argon2i encryption (CoalaJoe) #26175
  • Make security.providers optional (MatTheCat) #26787


  • Html5 Email Validation (PurpleBooth) #24442
  • Deprecated "checkDNS" option in Url constraint (ro0NL) #25516
  • Deprecate use of Locale validation constraint without setting "canonicalize" option to true (phansys) #26075
  • Support protocolless URLs validation (MyDigitalLife) #24308
  • Add canonicalize option for Locale validator (phansys) #22353
  • Add option to pass custom values to Expression validator (ostrolucky) #25504


  • Add dd() helper == dump() + exit() (nicolas-grekas) #26970
  • Introduce a new way to collect dumps through a server dumper (ogizanagi, nicolas-grekas) #23831
  • Provide binary, allowing to start a server at any time (ogizanagi) #26654
  • Add a GMP caster in order to cast GMP resources into string or integer (Simperfit) #25237


  • Live duration of AJAX request (ostrolucky) #26668
  • Expose dotenv variables (ro0NL) #25166
  • Make WDT follow ajax requests if header set (jeffreymb) #26655
  • Display the missing translation panel by default (javiereguiluz) #26398
  • Display orphaned events in profiler (kejwmen) #24392


  • Added a new 'all' method on the registry (alexpozzi, lyrixx) #26656
  • Added a TransitionException (andrewtch, lyrixx) #26651
  • Add a MetadataStore to fetch some metadata (lyrixx) #26092
  • Add transition blockers (d-ph, lyrixx) #26076
  • Remove constraints on transition/place name (lyrixx) #26079
  • Add PlantUML dumper to workflow:dump command (Plopix) #24705
  • Workflow name as graph label (shdev) #25148
  • Introduce a Workflow interface (Simperfit) #24751


  • [Lock] Add a TTL to refresh lock (jderusse) #26232
  • [Monolog] Add a Monolog activation strategy for ignoring specific HTTP codes (simshaun, fabpot) #23707
  • [LDAP] Allow adding and removing values to/from multi-valued attributes (jean-gui) #21856
  • [BrowserKit] Add a way to switch to ajax for one request (Simperfit) #24778
  • [HttpKernel] Add Kernel::getAnnotatedClassesToCompile() (nicolas-grekas) #27168
  • [HttpKernel] LoggerDataCollector: splitting logs on different sub-requests (vtsykun) #23659
  • [HttpKernel] Make session-related services extra-lazy (nicolas-grekas) #25836
  • [Intl] Add polyfill for Locale::canonicalize() (nicolas-grekas) #26152
  • [Translation] Added support for name on the unit node (Nyholm) #26149
  • [PropertyInfo] Add hassers for accessors prefixes (sebdec) #23617
  • Unwrap errors in FlattenException (derrabus) #26028
  • More compact display of vendor code in exception pages (javiereguiluz) #26671
  • Add clean option to assets install command (robinlehrmann) #24216

You can read more about this new version by reading the Living on the Edge articles on 4.1 on this blog. Also read the UPGRADE guide for Symfony 4.1.

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.

Be trained by Symfony experts - 2018-06-25 Paris - 2018-06-25 Paris - 2018-06-27 Paris

30 May 2018 2:47am GMT

29 Jun 2017

feedZend Developer Zone

PHP 7.2: Add Extension By Name

I don't know if you've been keeping up, but there's not a lot of new coming down the pipe in PHP 7.2. Yeah, there is a good list of things that are being deprecated, and a change to allow for type widening, but compared to PHP 7.0 and PHP 7.2, PHP 7.2 is positively a yawner. This makes writing articles about the new hotness coming down the pipe a bit difficult.

The post PHP 7.2: Add Extension By Name appeared first on Zend Developer Zone.

29 Jun 2017 6:36pm GMT

27 Jun 2017

feedZend Developer Zone

Deprecations in PHP 7.2

The only constant is change.
- Heraclitus of Ephesus

PHP is a living language and as such, as some things are added, others are removed. Click on inside to find out what is being flagged to go away in PHP 7.2

The post Deprecations in PHP 7.2 appeared first on Zend Developer Zone.

27 Jun 2017 3:41pm GMT

16 Jun 2017

feedZend Developer Zone

June 2017 PHP Community (coffee) Cup of Service winner

It is time for the June 2017 PHP Community (coffee) Cup of Service award. This month it goes to someone who has been giving to PHP for more than 15 years, Ms. Sara Golemon. Sara: Is a regular speaker at PHP conferences worldwide An active core contributor One of the release managers of PHP 7.2 Please join us here at... Read more »

The post June 2017 PHP Community (coffee) Cup of Service winner appeared first on Zend Developer Zone.

16 Jun 2017 12:00pm GMT

22 May 2017

feedZend Developer Zone

May 2017 PHP Community (coffee) Cup of Service winner

Since this is the very first "Michelangelo van Dam PHP Community (coffee) Cup of Service", I spent a long time running through potential recipients. To set the tone for this award, I wanted someone who gives a lot back to our community. While there are a lot of worthy recipients that meet the criteria, the one that stood out to... Read more »

The post May 2017 PHP Community (coffee) Cup of Service winner appeared first on Zend Developer Zone.

22 May 2017 4:21pm GMT

15 May 2017

feedZend Developer Zone

Sharpen your knives

As a manager, it is your responsibility to take care of, maintain, and improve the developers under your care. If you are not regularly investing in keeping their skills sharp, you are doing a disservice to your developers, to your project, and to your company.

The post Sharpen your knives appeared first on Zend Developer Zone.

15 May 2017 12:57pm GMT

10 Mar 2017

feedZend Developer Zone

ZendCon 2017 Call for Papers is OPEN!

For the five of you who are living under a rock and haven't heard, the dates for ZendCon 2017 have been announced and the ZendCon 2017 Call for Papers is open. You will want to check out the complete Speaker's package for all the details and awesomeness, but here are the highlights. Full conference pass (conference and tutorials) Lunch (conference... Read more »

The post ZendCon 2017 Call for Papers is OPEN! appeared first on Zend Developer Zone.

10 Mar 2017 4:52pm GMT

01 Mar 2017

feedZend Developer Zone

Scrape Screens with zend-dom

Even in this day-and-age of readily available APIs and RSS/Atom feeds, many sites offer none of them. How do you get at the data in those cases? Through the ancient internet art of screen scraping. The problem then becomes: how do you get at the data you need in a pile of HTML soup? You could use regular expressions or... Read more »

The post Scrape Screens with zend-dom appeared first on Zend Developer Zone.

01 Mar 2017 4:36pm GMT

22 Feb 2017

feedZend Developer Zone

zend-config For All Your Configuration Needs

Different applications and frameworks have different opinions about how configuration should be created. Some prefer XML, others YAML, some like JSON, others like INI, and some even stick to the JavaProperties format; in Zend Framework, we tend to prefer PHP arrays, as each of the other formats essentially get compiled to PHP arrays eventually anyways. At heart, though, we like... Read more »

The post zend-config For All Your Configuration Needs appeared first on Zend Developer Zone.

22 Feb 2017 4:18pm GMT

14 Feb 2017

feedZend Developer Zone

PHP and SQL Server for Linux

This week we tested the public preview of Microsoft SQL Server for Linux using PHP 7 with our component zendframework/zend-db. Microsoft announced the availability of a public preview of SQL Server for Linux on the 16th of November, 2016. This new version of SQL Server has some interesting features such as: transparent data encryption; always encrypted; row level security; in-memory... Read more »

The post PHP and SQL Server for Linux appeared first on Zend Developer Zone.

14 Feb 2017 9:28pm GMT

13 Feb 2017

feedZend Developer Zone

Zend Certified Engineer 2017-PHP

The new ZCE is here! As of February 13th, 2017, the new Zend Certified Engineer test is available. As with many things in life, it took a lot of effort to get the test updated but we are sure you will find it worth the wait. The new test now tests developers knowledge of PHP and programming concepts through PHP... Read more »

The post Zend Certified Engineer 2017-PHP appeared first on Zend Developer Zone.

13 Feb 2017 12:42am GMT

11 Nov 2011

feedCI News


What can you tell us about the team that built reportula.org?

The Team that made reportula.org is just one person. Pedro Oliveira, started Reportula when he needed a clean and fast web application that reported the Bacula Backups software of the company he works for. He has decided to open the project, and let it grow to full web application that is able to manage the Bacula Backups.

Reportula Website Screen Shot

What can you tell us about the site in general? What are the goals of the site and the main audience?

Reportula is a php based web program that provides you a summarized output of jobs that have already run. It obtains its information from the Bacula's database. Aside from a nice graphical display, it provides summaries of your jobs, as well as graphs of job usage. This is a fairly high level bacula management tool.

The main goals were to create a web reporting tool for the bacula backups system, as I got further into the project it developed into something more than that. Right know it calculates average of bacula backups, it has time line history of backups. Imagine this scenario for example, if you use the crontab feature of reportula, you can see in time by how much data your backups infrastructure is growing.

Example. in 2011.05.01 if backups infrastructure stores 500 Tera bytes, in 2011.12.30 it stores 510 terabytes. This is very handy for us because with this feature you can predict the storage needs of your backups for the future.

What was your major consideration in using CodeIgniter for this?

I chose codeigniter because I needed an easy, fast, and supported PHP development framework. I found that with Codeigniter I could achieve that. This project was made in less than month.

Another nice thing about Codeigniter is that you don't have to "re-invent the wheel". Codeigniter has most of the thing that you need for an application already developed. All you have to do is connect the blocks which is very easy.

What is next on the plate for reportula.org? Any additional functionality you can tell us about?

On the plate for Reportula is user registrations, acls, and managing Bacula Backups like "bconsole".

Do you have any other information you'd like to share with the community? Tips from this project you'd like to share? Lessons you've learned?

First of all i think that Codeigniter is one of the best frameworks on the internet. I've tried them all (Cake, Yii, Symfony, Zend) they are all too complicated, too big, with lots of features and slow. They all had one problem BIG, STEEP LEARNING CURVE.

Codeigniter has less features than the others but you start making an application in less than 30 minutes. And what it does it does well! Even if you think you need a big framework after starting with codeigniter it cames to you that you don't need another framework to develop some applications. The lessons I learned are don't re-invent the wheel, Codeigniter does it and does it well, the community are nice, and always had support on the forum.

11 Nov 2011 10:19pm GMT

02 Nov 2011

feedCI News


Every week we hear of really awesome places that CodeIgniter is being used. I want to start sharing those with the community-at-large. I will start by posting them here under a new Showcase Category with the hopes that any future revisions of CI.com will have a section for stuff like this. You guys and gals make some really cool stuff and deserve a platform to show it off.

So without further ado…

This showcase is an interview with Kyle Roseborrough about GoCart

What can you tell us about the GoCart team?

We have a pair of PHP developers who knew there was a better way to build a shipping cart. Noah (lead developer) has 6 years experience in PHP development and 4 years in CodeIgniter. Gabe has about 10 years experience in web application development. Kyle has been working in UI and management for 10 years.
GoCart Website Screen Shot

What can we tell about the site in general?

GoCartdv.com was built to showcase GoCart and offer some basic information on the system.

What are the goals of the site and the main audience?

The main audience is CodeIgniter developers who are wanting a simple, scalable, CodeIgniter shopping cart. The goal is to get people involved in development to improve the cart and allow it to fully embody the goal of the project. To be easy to customize for developers and easy to use for end users/customers

What was your major consideration in using CodeIgniter for this?

CodeIgniter has great documentation and is easy to learn. We build lot of custom projects on CodeIgniter and it only made sense for us to build our cart on it. When looking for commerce solutions, we never found a suitable solution built on CodeIgniter so we decided to set out to do it on our own.

What is next on the plate for GoCart?

We really want GoCart to foster a great community of people contributing back to the roadmap and path the project will take. We want the focus to remain the same though "Easy to Customize, Easy to Use". It would be great if we could get enough people using.

Any additional functionality you can tell us about?

Well, not really. GoCart is intended to be a shopping cart, plain and simple. It does have some basic page and banner management and a whole slew of cart related features, but ultimately it's an ecommerce platform.

Do you have any other information you'd like to share with the community?

We built GoCart to be simple and scalable. As time goes on, we want the software to become easier and easier to use. We want GoCart to be scalable and to be able to work with new platforms as they come out. We feel that CodeIgniter and the CodeIgniter community is a huge benefit here. It enables developers to tie into a whole plethora of libraries, helpers and applications easily and support each other in the endeavor to make CodeIgniter better. Essentially, what's good for CodeIgniter is good for GoCart.

Tips from this project you'd like to share?

If you really want something, do it yourself. If it doesn't happen then you probably don't want it as bad as you think.

Lessons you've learned?

- Not every idea is a good one. Generally you need someone else around to discuss ideas and methods with. Collaboration is the best way to build a good application.
- No one knows what the next trend will be. Having a scalable platform that will adjust to a new set of tools and user demands is very important.

If you have a project that you would like to see in our showcase email me

02 Nov 2011 7:31pm GMT

05 Oct 2011

feedCI News

New User Guide in Development

We are happy to announce today that the user guide has had some significant improvements, and the first commit of these changes were just pushed today.

As many of you likely heard at CICON 2011, the Reactor team has had an internal project going on for some time to move the user guide to Sphinx. In addition to handling the tedium of generating page and document tables of contents, or maintaining internal links and references, the documentation is now easier to write, as you can simply focus on the content instead of markup and presentation. Don't forget syntax highlighting of PHP, HTML, CSS, and JavaScript in code samples. Based on ReStructured Text, it's also more human readable in a text editor than HTML is, which is likely where you spend most of your time. As an added benefit, Sphinx can output HTML, PDF, and even EPUB formats all from the same source files. We will likely be taking advantage of that at a later date.

But we didn't stop there, we also enlisted the thunderous powers of EllisLab's Chief Creative Officer, James Mathias for a style redesign. They are clean, easy to read, and beautiful.

Setting up your dev environment to work with Sphinx (if you want to render and output locally) is very easy, and takes about five minutes. For those that want to geek out, we have added a readme file to the user guide source folder so the step by step instructions are available right from GitHub.

Today marks the first commit with the new user guide to the unreleased develop branch, so you may encounter some bumps. Most notably are the code blocks, which pandoc lost our line breaks on, and some navigation issues as we experiment with different table of contents presentation and depth. We'll be cleaning these up prior to the next release (much is as simple as some line breaks and tabs), but feel free to pitch in and submit some pull requests if you see anything out of whack.

And lastly, for the first time ever, we have live nightly builds of documentation for the develop branch available at the CodeIgniter web site. Enjoy!

05 Oct 2011 7:23pm GMT

21 Sep 2011

feedCI News

Upcoming Site Downtime

The EllisLab family of sites (ExpressionEngine.com, CodeIgniter.com, MojoMotor.com, and EllisLab.com) will be down for scheduled maintenance on Thursday, September 22, 2011 beginning at approximately 10-11pm Eastern and lasting a number of hours. Access to critical resources such as the store, your product downloads, and documentation will be unaffected.

21 Sep 2011 4:17pm GMT

06 Sep 2011

feedCI News

Contribution Guide

CodeIgniter is a community driven project and accepts contributions of code and documentation from the community. These contributions are made in the form of Issues or Pull Requests on the EllisLab CodeIgniter repository on GitHub.

Issues are a quick way to point out a bug. If you find a bug or documentation error in CodeIgniter then please check a few things first:

Reporting issues is helpful but an even better approach is to send a Pull Request, which is done by "Forking" the main repository and committing to your own copy. This will require you to use the version control system called Git.


Before we look into how, here are the guidelines. If your Pull Requests fail to pass these guidelines it will be declined and you will need to re-submit when you've made the changes. This might sound a bit tough, but it is required for us to maintain quality of the code-base.

PHP Style: All code must meet the Style Guide, which is essentially the Allman indent style, underscores and readable operators. This makes certain that all code is the same format as the existing code and means it will be as readable as possible.

Documentation: If you change anything that requires a change to documentation then you will need to add it. New classes, methods, parameters, changing default values, etc are all things that will require a change to documentation. The change-log must also be updated for every change. Also PHPDoc blocks must be maintained.

Compatibility: CodeIgniter is compatible with PHP 5.1.6 so all code supplied must stick to this requirement. If PHP 5.2 or 5.3 functions or features are used then there must be a fallback for PHP 5.1.6.

Branching: CodeIgniter uses the Git-Flow branching model which requires all pull requests to be sent to the "develop" branch. This is where the next planned version will be developed. The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g: an emergency security patch) can be applied to master to create a new version, without worrying about other features holding it up. For this reason all commits need to be made to "develop" and any sent to "master" will be closed automatically. If you have multiple changes to submit, please place all changes into their own branch on your fork.

One thing at a time: A pull request should only contain one change. That does not mean only one commit, but one change - however many commits it took. The reason for this is that if you change X and Y but send a pull request for both at the same time, we might really want X but disagree with Y, meaning we cannot merge the request. Using the Git-Flow branching model you can create new branches for both of these features and send two requests.

How-to Guide

There are two ways to make changes, the easy way and the hard way. Either way you will need to create a GitHub account.

Easy way

GitHub allows in-line editing of files for making simple typo changes and quick-fixes. This is not the best way as you are unable to test the code works. If you do this you could be introducing syntax errors, etc, but for a Git-phobic user this is good for a quick-fix.

Hard way

The best way to contribute is to "clone" your fork of CodeIgniter to your development area. That sounds like some jargon, but "forking" on GitHub means "making a copy of that repo to your account" and "cloning" means "copying that code to your environment so you can work on it".

  1. Set up Git (Windows, Mac & Linux)
  2. Go to the CodeIgniter repo
  3. Fork it
  4. Clone your CodeIgniter repo: git@github.com:<your-name>/CodeIgniter.git
  5. Checkout the "develop" branch At this point you are ready to start making changes. Fix existing bugs on the Issue tracker after taking a look to see nobody else is working on them.
  6. Commit the files
  7. Push your develop branch to your fork
  8. Send a pull request http://help.github.com/send-pull-requests/

The Reactor Engineers will now be alerted about the change and at least one of the team will respond. If your change fails to meet the guidelines it will be bounced, or feedback will be provided to help you improve it.

Once the Reactor Engineer handling your pull request is happy with it they will post it to the internal EllisLab discussion area to be double checked by the other Engineers and EllisLab developers. If nobody has a problem with the change then it will be merged into develop and will be part of the next release.

Keeping your fork up-to-date

Unlike systems like Subversion, Git can have multiple remotes. A remote is the name for a URL of a Git repository. By default your fork will have a remote named "origin" which points to your fork, but you can add another remote named "codeigniter" which points to git://github.com/EllisLab/CodeIgniter.git. This is a read-only remote but you can pull from this develop branch to update your own.

If you are using command-line you can do the following:

git remote add codeigniter git://github.com/EllisLab/CodeIgniter.git

git pull codeigniter develop

git push origin develop

Now your fork is up to date. This should be done regularly, or before you send a pull request at least.

[Editor's note: This article will be added to the User Guide]

06 Sep 2011 1:36pm GMT

31 Aug 2011

feedCI News

Amazing Progress Report & Addition of IRC to CodeIgniter.com

In less than two weeks since the announcement was made at CICON that CodeIgniter was moving to GitHub, we've seen some incredible results from the change. Already CodeIgniter is the 10th most watched PHP project at GitHub (currently 758), with 42 open pull requests, 53 merged pull requests, 170 forks, and 41 individual contributors. Incredible!

Behind the scenes, the Reactor engineers and the EllisLab team are regularly conversing about potential changes, and working jointly on larger more sprawling projects like converting the userguide to Sphinx, and getting things ready for the inclusion of Sparks.

We also noticed what seemed to be a spike in activity on the #CodeIgniter Freenode IRC channel, so we've decided to make it more prominent to encourage its continued use. You'll now notice an IRC tab in the main navigation, letting you access the #CodeIgniter IRC channel right here at CodeIgniter.com.

Join in the discussions, and if you haven't already, start watching the CodeIgniter repo at GitHub, contributing, and even just commenting on people's requests or engaging in peer code review. With our community's energy, I think we might even eclipse some of the larger PHP projects at GitHub! You all are awesome, and we thank you.

31 Aug 2011 8:29pm GMT

27 Aug 2011

feedCI News

CICON2011 Recap

Phil Sturgeon has settled in after last weekend's very successful CICON, and relates his take on the biggest news items: GitHub, git-flow, no more "Core" branch, Sparks, and (drum roll) the community! Read the full article on Phil's blog.

27 Aug 2011 12:43pm GMT

25 Aug 2011

feedCI News

Converting from Mercurial to Git

If you've been maintaining a Mercurial fork of the CodeIgniter repo, we've written up a how-to demonstrating migration of that repository to Git. You can always just clone anew from GitHub, but if you migrate your Hg repository, you will not lose any of your change set history when switching. Read the step-by-step instructions along with some additional resources at the EllisLab blog.

25 Aug 2011 2:27pm GMT

20 Aug 2011

feedCI News

GitHub, Reactor, and v2.0.3

If you are following CICON 2011 today, then you no doubt already heard from the Reactor team: CodeIgniter is now using Git for source control, and has moved its home to GitHub. Also, CodeIgniter "Core" is not longer being publicly maintained. CodeIgniter "Reactor" is CodeIgniter, so we are dropping that suffix. In short: CodeIgniter is the framework, and Reactor is our community driven development program.

Lastly, version 2.0.3 was released today, download it here or from the release tag at GitHub.

For full details of our switch to Git, head over to the EllisLab blog.

20 Aug 2011 4:03pm GMT

27 May 2011

feedCI News

Jeffrey Way Talks CodeIgniter

Yesterday Jeffrey Way, Editor of Nettuts+ did a video tutorial on Easy Authentication using CodeIgniter. As part of the tutorial he takes you through the process of building an authentication system with CodeIgniter and how to restrict access to certain parts of your website to only those who've logged in.

27 May 2011 4:29pm GMT

25 May 2011

feedCI News

Giving Back

Today we have an announcement that we are very excited about. If you take a look around you will notice some ad spots have appeared in various locations around the CodeIgniter site. Our hope is that by adding some ads to CodeIgniter.com we can give back to the community in a number of ways. Capitalizing on the traffic will allow us to sponsor more events, invest in more hours coding and generally give back more to this awesome community. And we've also tried to make several of the ad spots more economical so that many of you can capitalize on them to promote the products or services that you are offering using CodeIgniter.

We are using the Buy Sell Ad Network to manage the ads. Those of you running ads on your sites are probably familiar with them. We chose BSA as it was a very simple process to get the ads online. But we wanted to make sure that whatever system we used allowed us to manage the content that appears on the site. BSA allows you to have complete control over the ads that appear here and we will be doing out best to make sure that they fit within the intent of this community.

I would also like to thank the Reactor Team for their feedback as part of this decision. Your contributions to this community are many and we thank you for that.

25 May 2011 7:01pm GMT

21 Apr 2011

feedCI News

Press Release: CICON

For immediate release

Tickets On Sale For CICON2011: The First US CodeIgniter Conference

If you've been waiting for a chance to meet other CodeIgniter developers or experience great CI talks masterclasses then the wait is over! Tickets are now on sale for CodeIgniter Con 2011 US and are available via Eventbrite. They are currently going at Early-Bird rates so act quickly to get your discounted ticket before the offer runs out.

CICON2011 US is the first CodeIgniter-only conference in the United States, and will be taking place at New Work City in lower Manhattan, New York, on August 20-21 2011. Speakers including Zach Kitzmiller, Eric Barnes, Greg Aker, John Crepezzi, Dan Horrgian, and Kenny Katzgrau will be presenting and conducting masterclasses on topics for developers new to CodeIgniter and advanced CI developers looking to gain new skills and knowledge. For a developing list of what's in store, check out the programme.

For anyone still not entirely sure if they should come, check out this promo video put together by CICON2011 showcasing some of the top members of the CodeIgniter community talking about discovering and using CI, including Rick Ellis(!), Derek Allard, Pascal Kriete, Greg Aker, Phil Sturgeon, Kenny Katzgrau and Eric Barnes.

Adam Fairholm

21 Apr 2011 10:47pm GMT

07 Apr 2011

feedCI News

CodeIgniter 2.0.2 Released

An update to both CodeIgniter Reactor and CodeIgniter Core (v 2.0.1) was released today. This is a security maintenance release and is a recommended update for all sites. The security fix patches a small vulnerability in the cross site scripting filter. We also took the opportunity to iterate on some of our other filtering code. As a result, the Security library is now a core component.

Please make sure you follow the upgrade instructions. Core users can grab the 2.0.1 tag on BitBucket. For core, please follow the upgrade instructions bundled with the download.

We're working on making these small maintenance releases easier to manage. We'll have more information about that soon.

07 Apr 2011 10:33pm GMT

06 Apr 2011


Bash autocompletion for Git

One thing I often wished to have when using Git was the ability to autocomplete Git commands and branch names. As I had to learn this week from Markus Prinz' article A few of my Git tricks, tips and workflows, Git comes with an autocompletion script for the Bash shell. But to use the autocompletion, […]

06 Apr 2011 8:36am GMT

01 Apr 2011


Array iteration with JavaScript

Till recently I always used a for-loop when I had to iterate over an array in JavaScript. For example: var myArray = [1, 2, 3, 4]; for (var i = 0; i < myArray.length; i++) { console.log(myArray[i]); } However, with ECMAScript 5 the Array object itself got some methods for iteration purposes. With those methods […]

01 Apr 2011 2:51pm GMT

07 Mar 2011

feedCI News

Reactor Engineer Opening

If you follow the Reactor team, you probably already know that the venerable Ed Finkler had to resign from his position due to personal time constraints. That means that we have an opening, so if you feel that you qualify, please email the following:

  1. CodeIgniter Username
  2. Link to your site profile, e.g. http://codeigniter.com/forums/member/18457/
  3. Three of your biggest contributions to CodeIgniter (can be code, a particular bit of feedback, etc.)
  4. A brief paragraph stating why you think you should be considered.

You can also nominate someone else by emailing the above information on their behalf. In that case, please also include your CodeIgniter Username and link to your site profile along with your nominee's.

If you submitted an application the first time around, please just send a brief email indicating that you are still interested. We received a number of great applications, but we do need to ensure that the interest and time commitments have not changed.

Thanks Ed for the time you were able to give to the Reactor project, EllisLab and the community appreciate it!

07 Mar 2011 4:20pm GMT

10 Feb 2011

feedCI News

System Maintenance, Saturday, February 12

The EllisLab family of sites will undergo a maintenance window Saturday, February 12, starting at 8pm US Pacific Time (GMT -8). Downtime should be brief, but the maintenance window is scheduled to be concluded by 11pm.

During this time, if you require access to our online documentation or software downloads, I'd like to remind you that they are available at BitBucket. There you can download a zip file, fork or clone your own local copy. If you have not used BitBucket before, you can sign up for free here.

10 Feb 2011 8:09pm GMT

10 Jan 2011


2-legged vs. 3-legged OAuth

From emails I receive it seems like there is a bit of confusion about what the terms 2-legged OAuth and 3-legged OAuth mean. I hope I can clear up this confusion with this article (and don't contribute more to the confusion…). In short, they describe two different usage scenarios of OAuth involving two respectively three […]

10 Jan 2011 5:30pm GMT

08 Dec 2010


Bugfix release v2010-12-08 of the OpenID component

There is a new bugfix release of the OpenID component available: https://github.com/cakebaker/openid-component/downloads. This release fixes a bug in the isOpenIDResponse() method. So far this method only recognized OpenID responses from a GET request. But as I had to learn, there are OpenID providers (e.g. Hyves) responding with a POST request… So, if you use the […]

08 Dec 2010 3:53pm GMT

04 Dec 2010


Navigation with the “j” and “k” keys

If you are using Vim you already know the meaning of the "j" and "k" keys: they navigate one line downwards resp. upwards. Some websites like The Big Picture adopted this functionality to provide an easy way to navigate, in the case of The Big Picture to jump from photo to photo. As I wanted […]

04 Dec 2010 9:33am GMT

19 Sep 2010


Cucumber: Switching from Webrat to Capybara

My current testing tool of choice is Cucumber. Cucumber itself integrates well with other tools. One of those tools is Webrat, which allows you to access your application without a browser and to perform actions like clicking on a link or filling out forms. It works fine with Rails 2.3.x, but not with Rails 3 […]

19 Sep 2010 2:24pm GMT

19 Jul 2010


Bugfix release for the OpenID component & an example application

Last week I received a mail from a user of the OpenID component in which he described that it wasn't possible to login with OpenIDs from claimID and Blogger. After some debugging I found the reason for this problem: a bug in the isOpenIDResponse() method. The method only recognized responses from providers using OpenID 2.0, […]

19 Jul 2010 2:23pm GMT

14 Jul 2010


Grouping “constants” with JavaScript

A while ago I wrote about how you can group related constants in PHP5 by using a constants class: class MyConstants { const AA = 'value'; const BB = 'another value'; } echo MyConstants::AA; // output: value Now, while experimenting with JavaScript (or more precisely with Node.js) I got some constants in my code I […]

14 Jul 2010 2:10pm GMT

19 May 2010


OpenID component v2010-05-19 released

As mentioned in the title, I released a new version of the OpenID component today. It's a maintenance release: the only change is an update of the bundled PHP OpenID library from version 2.1.2 to 2.2.2. With this change you no longer have to patch the OpenID library if you are working with PHP 5.3. […]

19 May 2010 7:51am GMT

08 May 2010


Sassy CSS

Those who follow me on Twitter probably know about my love-hate relationship with CSS. To ease the pain of working with CSS I switched to Compass, a stylesheet authoring framework. With Compass, you write the stylesheets in Sass (Syntactically Awesome Stylesheets) instead of CSS. Sass is basically CSS without brackets and semicolons, as you can […]

08 May 2010 1:13pm GMT

04 Mar 2010

feedWithCake.com Companies Hiring

qpLogic Europe

We can use immediately an experienced Cake developer for assisting us with developing a multi-lingual application that needs some Jake/Joomla (css) integration. We have continuously Cake projects and prefer to work with a team of individual developers in multiple time zones. Please show me that you are experienced, affordable and have at least 24 hours available per week (40 is better ;-).

04 Mar 2010 11:54am GMT