Open Source web blogging
So it has been a while since i have had the opportunity to blog, seeing as i am now working full-time on a new gig.
One of the joys has undoubtedly getting more involved in application development again, and one of the perks is definitely the fact we use the Zend Framework so extensively. I have had experience with virtually all the major PHP MVC frameworks around from the time, the started to flourish, like CodeIgniter, Expression Engine, Symfony, CakePHP, and Seagull.

I think that it is the combination of Zend Studio, the modular design philosophy, Zend Server and now Zend Tool gives PHP the closest thing to something to a Ruby-on-Rails or Django like environment. I had previously used various components separately like, the Zend Form, and Zend ACL, yet setting up the MVC framework was a bit of a chore.
Luckily there has been major done here and getting started is much easier now. A lot of the work can be automated using the handy Zend Tool, which can generate the basic stubs and configuration for you without simple, one-line commands. If you have already planned and designed your application you could have a skeleton up and running in a matter of minutes, something that may have been time consuming and tedious vs manually doing it or with other MVC frameworks.
I think that there is a still a lot lacking but the availability of tools like these, that are very extensible give a good framework to begin with. For me, I have a java background and I thought that the fact that the coding standards and best practices really allows you to focus more on “Good Programming Practices”. Have this is important as procedures like solid coding standards, easy access to testing frameworks like PHPUnit and documentation applications like PHPDOC are essential if you are to pursue rapid development in a team environment.
One of the major drawbacks I found was the scattered documentation. The framework has a wide number of configuration options if you opt for the MVC setup, and this is both a good and a bad thing. Documentation for more basic installations id available, but it is more complex architecture and set-up that can be a bit hard to get around.
Personally I think it would be great to have a web-based interface similar to that of Django for simple CRUD and server administration. Add to the fact that the interface in Django is also highly extensible is what makes the python framework so powerful.
Maybe when the dust settles and i get done with the current project I am working on is done, I may actually try to piece something together and see how it works. Seeing as everything is set in the Bootsrap.php or application.ini config files it would be great to create “images” or snapshots to easily create new or baseline installs to play around with relative ease.

In: General
14 May 2010Out of the many documentation tools out there, one of the easier is PHPDoctor.
Its dead-simple to get started and i think i may do a quick video but again it is another reason why as a developer you should get firmiliar with the command line, as you can generate web viewable documentation for you entire system or application with a single command.
php phpdoc.php myconfig.ini
Check out the PHPDoctor and be try get a better handle on your documentation, your developers, managements, and business development guys will thank you for it in the future.
It is undeniable that there is a laissez-faire attitude among developers when it comes to code. Coming from a Java background where everything is fairly tightly defined in terms of best practices and how things should be done, PHP is almost the opposite.
This is appealing at first, as it makes learning the language easy, as well as making PHP do what you want with relative ease when compared to a .NET or Java solution.
However, a major drawback is that it soon becomes the Wild Wild West of coding, where hired guns, who just “get the job done” seem to reign supreme. Yet this is a MAJOR short-sighted view. In the end I can almost guarantee the cowboy you got to wrangle your code did so, in a fairly inconsistent manner, so sure it works great now but if your plan is to scale your application and grow your team, you will soon feel the pain.
The number of freelance, and even web-shops who launch projects without a well-defined requirements document, a good, take time to decide on standard architecture, establish through testing or even care about a coding standards are certainly few and far between.
As a result code is usually sloppy and haphazard, and in the end new developers spend a lot of time getting to grips with the code, and unorthodox system structure.
To add to that there is little to no testing done in a documented manner. Thus if it every happens you want to extend your app or try and get some Venture Capital, what quantitative data can you show potential investors? Does it scale with the current architecture and design? What were the pitfalls and bugs, as well as were they addressed and where?
One of the best ways to get standardised is to make sure you hone your development process bit-by-bit and get the developers to gradually get into good habits like documenting their code accordingly.
Earlier I did write about the command line, bash shell scripting and why it was important for Web developers.
I still think that every dev, needs to get handy with it, and another reason is a lot of the automated documentation tools are command line based. Of course some have web-based interfaces but most are not as crisp, clear or smooth for me.
In future I think I will look at the list of documentation tools i think are pretty good, but for now I think, just getting into the groove of better documentation is a good thing.
In: General
12 May 2010After a certain point, i think every single web developer has to evolve to a point where you become well versed with the command line.
Whether you are on linux, unix, windows, android and everything in-between then it is essential to the craft.
You can sync and migrate thousands of files much faster using rsync or svn than ftp, as well as maintain better source control, migrate a large MySQL database in a few minutes vs another utility like PHPMyAdmin may take a long time or fail to do, creating and managing scheduled tasks with cron to name a few things.
There are options like Perl, which is a close relative of PHP so easier to learn. But there is also Bash Shell Scripting. So check out this tutorial from http://www.hypexr.org/ for more info getting started with bash. And if not Bash, Perl should be next on your list.
When its time to scale, its time to scale! Among other things scaling includes redundancy.
One way to achieve better results is with MySQL database replication. I think as far as “how-tos” go in terms of detail this is a pretty good example and walk-through.
This is from http://www.howtoforge.com/
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque sed felis. Aliquam sit amet felis. Mauris semper, velit semper laoreet dictum, quam diam dictum urna, nec placerat elit nisl in quam. Etiam augue pede, molestie eget, rhoncus at, convallis ut, eros. Aliquam pharetra.