centre{source}
INTERACTIVE AGENCY
Posts Aboutsymfony
Symfony 2 Conference Hub at the Castle
When the Symfony Live Online conference was first announced, Brandon came up with the great idea to get the entire Nashville Symfony/PHP community to watch it together at centresource. “It’ll be an amazing gathering of nerds the likes of which have never been seen!” he says.
Well, Sensio decided to steal our thunder by suggesting Symfony 2 Conference Hubs a few days later. Hey Sensio, we still take credit for the idea. We thought of it first. And now that’s off my chest, the sales pitch:
Deploying symfony Applications with Capistrano
Capistrano is an open source tool for running scripts on multiple servers. It’s primary use is for easily deploying applications. While it was built specifically for deploying Rails apps, it’s pretty simple to customize it to deploy other types of applications. We’ve been working on creating a deployment “recipe” to work with symfony applications to make our job a lot easier.
Prerequisites
- Must have SSH access to the server you are deploying to.
- Must have Ruby and RubyGems installed on your machine (not required for deployment server)’
Installing Capistrano
sudo gem install capistrano
Setup your project to use Capistrano
cd path/to/your/app
capify .
What keeps us busy after hours
At some point in a conversation with our development team, these words are very likely to come up: “… well, we could build a site that …” You see, it takes a naturally inquisitive and industrious person to become a Web developer. Some of these ideas are for a good cause while other are just for fun. It is really amazing to see some of the sites and projects they have come up with.
Here is a snapshot of some of the recent projects that have kept our development team busy outside of their normal day-to-day work for our clients.
Have a seat: CentreSource launches NashvilleOfficeFurniture.com
We recently launched the Web site for Office Furniture & Related Services (OFRS). As a merchant of new, used and refurbished office furnishings, we built the site so that it would allow visitors to drill down to exactly the product that fits their needs. For OFRS, the site serves as a 24-hour, 7-days a week salesperson. As part of our line of Management services, we will also be working with OFRS to create a powerful SEM campaign to drive highly-targeted leads to their Web site.
More than a Facelift: Nashville Centre for Laser and Facial Surgery
We recently launched a new site for Nashville Center for Laser and Facial Surgery. The practice is lead by Dr. Brian S. Biesman, a world-renowned authority on cosmetic, reconstructive, and laser surgery. For the site, the goal was not only to tell about Dr. Biesman’s practice, but to serve as a repository for helpful resources on a wide range of industry topics, including his own “Face Facts” resources. It was a lot of content — nearly 150 articles on research, services and treatments — and our goal was to make it user-friendly and easy to navigate. Think Wikipedia.
Code That Saves The Day: Symfony Admin Generator
Every day at CentreSource brings with it a new challenge. With every challenge comes the opportunity to try a unique approach. We all know sailing the interweb can be stormy at best. But if you keep your eyes open, you will find code that can be a lighthouse to your sinking ship. Today’s Code that Saves the Day™: The Symfony Admin Generator!
Tools That Make My Job Easier
Bash Aliases
Working on a Mac, I spend a lot of my time in Terminal (the command-line utility). This is where I do all of my interaction with my local databases, the central Subversion repository, and issue various system commands. Some of these commands can get quite long and are time consuming to type out. That’s where aliases come to the rescue!
Choosing the Right Tool for the Job
At CentreSource, we have a motto that “outcomes always outweigh the output.” Through this, we try to focus on meeting the individual goals of our clients, versus focusing on the process of how they get done. One goal we often hear is that our clients would like an easy way to update the website themselves. By using a Content Management System (CMS), we enable our clients to accomplish this — without having to install anything on their computers, or know too much about how websites work.
Over the history of CentreSource, we’ve worked hard to choose the perfect CMS to be able to meet the individual needs of each client and project that comes our way. There was always a balance that had to be struck — it couldn’t be too cookie-cutter, or else we wouldn’t be able to do everything that the client was asking. Conversely, it wouldn’t be cost efficient if we had to custom build a CMS for our clients each time. By focusing on the outcome (the client’s goal of an easy-to-update website), we decided that the best single CMS option was not a single option at all, but instead a “toolbox” approach that would allow us to use the appropriate tool for each unique job.
Symfony Faux Form Serialization
Recently, I ran into an issue when building a Symfony plugin for Slideshow renderings. When I added the support for multiple libraries, in this case Google Slideshow2 and JQuery Cycle, they had drastically different configuration options. JQuery Cycle allows you to use a list of effects, such as blindX and blindY. These effects are great, and I want the end user to be able to easily select between them. Google Slideshow2 allows the adding of thumbnails and traversing controls. Neither of these settings apply to the other, and this is only two slideshow renderers. What happens when I add another one? Five more? I could create multiple tables for each renderer, such as google_slideshow2_options and jquery_cycle_options. I could also just provide a textarea for key-value pairs (effect=blindX timeout=500) that the user typed in. I did not like either of these options, as the former struck me as over-architecting, and the latter as unusable.
Centresource Releases New Plugins to the Symfony Community
Over the last week, the developers here at CentreSource have published nine plugins for the symfony community. The plugins have been used in several of our internal projects and client web applications, but have been developed on a private repository. We finally decided the plugins were properly documented and tested. These plugins can be found here.
1) csDoctrineActAsAttachablePlugin - associates various uploads with multiple models, and includes an AJAX uploading client interface.
2) csDoctrineActAsCategorizablePlugin - associates models into nestable categories and category groups.
3) csDoctrineActAsGeolocatablePlugin - integrate your model with the Google Maps API to pull in geocodes based on record fields. Supports radius and proximity searches.
