Tag Archives: laravel

100 Patterns For Success

I found in my personal journey to learn programming that design patterns were hard to understand at the beginner level.  The reason for this is that until you have some experience with implementations, the patterns are not going to be as understandable and you won’t see the benefit to learning them.

Seeing the benefit to something is key to learning it because you become motivated by the benefit and that drives you to overcome the difficulty of learning.

Before I go on, there is a great introductory article to design patterns on tutsplus.com that will give you a nice overview on design patterns, and includes examples of the following:

  • Strategy Pattern
  • Adapter Pattern
  • Factory Pattern
  • Decorator Pattern
  • Singleton Pattern

I wasn’t a big believer of the usefulness of these patterns in PHP until I studied the Laravel framework, which uses them extensively.  Now I’m still not any kind of authority on these patterns in Laravel, so I’m not going to give examples.  I’ll leave it to you to explore them on your own.  That said, the article is a great starting point.

If you are unfamiliar with Laravel, I did write Laravel 5.4 For Beginners to get you started, which  earned numerous 5 star ratings on GoodReads.com.

Laravel is an amazing PHP framework, which manages to distill things down to an intuitive syntax that is easy to grasp.  Where design patterns can be incredibly abstract and formal, Laravel is intuitive and simple.  It’s worth mentioning though that it achieves simplicity without sacrificing design principles and that is one of the things that makes it so powerful.

Anyway, I’ve always been inspired by Laravel and it’s community, since I was introduced to it a few years ago.  More recently, I listened to one of their podcasts, and the subject turned to books on entrepreneurship, which is one of my favorite subjects, since I’m also an entrepreneur.

Anyway, Matt Stauffer, the host of the show, talked about being disappointed by the book, “Rich Dad, Poor Dad” by Robert Kiyosaki, how the book didn’t seem to offer anything concrete, other than some musings about the psychology of success.

Personally, I’ve read that book.  It’s not a bad book.  On the other hand, I could see why programmers might not relate to it.

First of all, Kiyosaki is from an older generation that wasn’t very technical and that creates a disconnect.  It’s great that people were able to build empires through sheer street smarts and willpower, but programmers tend to admire the tech that has been built more than the money that it generated.

So if you did a bunch of real estate deals, and made a ton of money, it’s great, but not exactly inspiring to programmers.

A lot of books on entrepreneurship focus on the biography of the entrepreneur, which, while interesting, is not all that useful.  Richard Branson, for example, was thrown into a river as a five-year-old child by his father, so that he could learn to swim, which made him tough.  It’s a great snippet, but how does that help anyone else?  Personally, I won’t be throwing any of my kids into the water…

So I though about how a programmer would approach the subject of success and I realized that we could relate to it in terms of patterns, which as programmers, we have a natural affinity to.

After mulling it around a bit, I decided to step up to the plate and wrote 100 Patterns For Success, which draws on the success of millionaires and billionaires in tech.  I use their quotes, case studies, and my own observations to break success in tech into discrete attributes and patterns that you can adopt.

Here’s a short list of some of the people quoted in the book:

  • Peter Thiel
  • Elon Musk
  • Bill Gates
  • Mark Zuckerberg
  • Steve Jobs
  • Jack Dorsey
  • Larry Page

And many, many more tech millionaires and billionaires.  The quotes from these people are not simple quips or throw away lines.  They are mantras and insights that successful people live by.

We also look a case studies of successful entrepreneurs and the companies they founded. We talk about why, for example, Youtube was able to sell to Google within 1 year of founding for $1.6 billion, without ever having made a nickel in revenue.

That was not an accident and the odds were stacked in their favor from the beginning. The book has many other stories like this and shows you what they have in common.

The patterns in the book are meant to be helpful to you whether you are an entrepreneur or not.  In fact, I don’t recommend entrepreneurship to people.  Becoming an entrepreneur is not a rational act, since the odds of success are always stacked against you.

Instead, entrepreneurship is more about self-expression than anything else.  Yes, there is a financial motive, but if that’s all there is, then that entrepreneur is doomed before they even start.

Ever since I struggled to learn programming, I dedicated a lot of time to helping educate programmers from all over the world, to help them get past the barriers that would otherwise stop them from achieving their goals.  I know firsthand how hard things can be, nothing ever came easy for me.

Anyway, I hope you enjoy this book.  I put hundreds of hours of research into it.  The book is 298 pages in length, but it’s a gentle 298 pages, with a lot of white space.  We’re gotten some early reviews that have come back at 5 stars on GoodReads.com.

I’m very much aware that educational dollars are precious.  I’ve priced the book low so that my international readers will have access to it.  I’ve done my best to make it a fundamental resource that is critical to your development, both as a programmer, and as someone who wants to get the maximum benefit from your work.  I’m right there with you, in terms of wanting to benefit from programming work.

Thanks again to everyone who has supported my work over the past 4 years, I really appreciate it.

 

Advertisements

Laraboot: Laravel 5.2 For Beginners Available Now

Laraboot: Laravel 5.2 For Beginners Available Now

I’m proud to announce the release of Laraboot: Laravel 5.2 For Beginners.

I just completed the rewrite, since the original book was written for 5.1 and some important things changed from 5.1 to 5.2, especially with the Auth traits.

I wasn’t sure if I was going to be able to update my Laravel book in a timely manner, since the Laravel framework itself evolves so quickly. I figured that the changes from 5.1 to 5.2 wouldn’t be substantial enough to warrant it, but then I decided to do a new project in Laravel, and when I started using 5.2, I realized that the improvements were valuable enough to justify the work.

For example, 5.2 has a handy artisan command for creating the Auth views, so that is a real time saver. With routes, we now have a web group that we use, which uses web middleware, and we have accounted for that change as well.

I also rewrote the socialite implementation, revising the ManagesSocial trait to make it easier to follow. These are big improvements to the template, if you want to use it as a starter for your projects.

The new edition of the book also includes a ManagesImages trait, which helps make the image management code reusable, and we also use a config file to bring in defaults, so this is new material for the book, now 467 pages. I think you will like it.

Doing this version of the book gave me a chance to go over everything and make it as clear as possible, so I think you will some improvements there. I’ve updated the Laraboot github repository to the latest version as well.

I hope this book helps you meet some of your programming goals with Laravel. If you have a positive experience with it, please leave a review at:

https://www.goodreads.com/book/show/27750405-laraboot

Thanks again for supporting my work.

Laraboot: Laravel 5* For Beginners Now Available

I’m happy to announce the release of Laraboot: Laravel 5* For Beginners today. The base book comes in at 370 pages and covers everything you need to know to get started in Laravel. And there is more coming as I release the bonus material over the next 30 days or so.

I’ve kept the minimum price of the book low because it just launched and I want to give everyone who purchased Yii 2 For beginners a chance to get it at the lower price. Once the page count swells, I will normalize the price.

I’m also happy to announce that you can purchase both books, Laraboot: Laravel 5* For Beginners and Yii 2 for Beginners in a single Bundle named PHP Frameworks Laravel 5* & Yii 2. That’s over 1000 pages of material and working code.

I’m really committed to helping PHP programmers become familiar with these frameworks, so they can increase their earnings potential. Both frameworks are great frameworks to learn and you really can’t go wrong by learning them.

This time out, I branded the re-usable template with the name of Laraboot. Everything in Laravel seems to be branded, so I jumped on board with that. I take a lot of pride in how clean and simple the code is in Laraboot. I think you will appreciate how easy it is to learn and use.

A word of thanks to all the programmers from around the world who have supported my writing with positive comments, reviews, and referrals. Yii 2 For Beginners got 4.67 out of 5 stars on Goodreads.com. I’m hoping to do even better with the new book. It really does inspire me to work harder, knowing that the work matters and that people appreciate it, so thanks again!

Laravel 5.1 Released

Laravel 5.1 is released today and it’s awesome. While there are only a few differences between 5 and 5.1, they are impactful, and really cement Laravel’s position as an enterprise framework. One of the most obvious changes is LTS, long term support, which fixes bugs (2 years) and security patches (3 years). This is obviously critical to enterprise development.

Another leap forward is the quality of the documentation. It’s incredible. Taylor Otwell wrote the documentation himself, and put the same obsessive care into the docs as he does the framework itself. This attention to detail really shows.

The first huge feature of the docs is the search window.  It’s easy to overlook, since I’m not used to using it and there is no label, but this is powerful.  It autocompletes what you are looking for and even does a good job of guessing on typos.  For example, when I typed in redur, it correctly understood I was looking for redirect.

Type in something like val and select validation.   Look at how great the Validation docs are. In the validation quickstart section, he begins with a route definition and takes you all the way through form validation, so it’s clear and comprehensive. We learn for example that all validation errors are automatically flashed to the session and are always available in the view through an $errors variable. Then of course we get a comprehensive list of validators.

If your validation requires a dependency, there is a great example, using the sometimes method to show you how to do it under the complex conditional validation section.

Another example of how thorough the documentation is the section on migrations. It’s a complete reference to:

      Creating Tables
      Renaming / Dropping Tables
      Creating Columns
      Modifying Columns
      Dropping Columns
      Creating Indexes
      Dropping Indexes
      Foreign Key Constraints

In the past I never really liked migrations, but I have come to appreciate them, especially since the workflow and execution on Laravel is so good.

The validation and migration sections are typical of the quality of the docs, I pretty much chose them at random.

Not only do great docs make it easier for beginners to find what they need, but obviously, they are a must have for enterprise development. Great documentation leads to coder happiness. Happy coders are productive coders. Productivity is essential for a successful enterprise.

Another change in 5.1 is the move to PSR-2 coding style, which is the one I’m most familiar with, so no complaints here.

Laravel 5.1 also introduces parameters on the middleware. If you are unfamiliar with the middleware class, it replaces the filters from previous versions of laravel. At first, I found this part of the structure a little complicated, but I have grown to appreciate it.

Basically middleware is a series of filters that are injected into requests via route definition or controller. They are super simple and easy to use, once you understand it, and once you see how it fits into the application structure. Not only that, but Laravel 5.1, like 5.0, has code generators for these specific classes via artisan, which will place them into the appropriate folders for you. So this helps you deal with the folder structure more easily.

While it’s true that new folder structures of 5/5.1 are way more complicated than what I was previously used to, they have had a curious side-effect. It’s actually easier for me to conceptualize or visualize the application as a whole. The discreet parts of the application make more sense to me. In the long run, the complicated folder structure makes application development easier and cleaner. You get far fewer overstuffed classes in favor of a greater number of leaner, more focused classes. It makes for cleaner code.

The release of 5.1 also includes the new @inject method for blade, which allows you to bring in a class instance from a service provider or helper class directly into your views. Normally, you would bring in all of your object variables into the view via the controller, but this could lead to code duplication. So, as in the latest example from Laracasts, if you have a stats object that you wish to use in many views, you can simply access it directly from within the view via @inject. This helps make code re-use simpler, since you don’t have to bind a view composer to a route.

Since I mentioned Laracasts, they have a bunch of new videos released today for 5.1, all worth checking out. Everyone here at work loves Laracasts.

The last new features that I’ll talk about in 5.1 are the model factories for seeding and the enhanced test integration. Model factories help automate the data seeding process, a very handy feature. It was already fairly easy to seed data and this just takes it a step further.

I’m going to defer to the testing video at Laracasts for the new testing improvements explanation, but I will say that it’s got the developers here excited about how easy it will be to test forms. It’s a huge plus.

For more info about the release, check out the Laravel 5.1 release notes.

Ok, so to wrap it up, let’s offer congratulations to Taylor Otwell and the rest of the Laravel team for releasing such a great enterprise framework. It’s through the work of teams like this that innovation and success becomes more accessible to all of us. It is much appreciated.

It’s Laravel 5.1 for Enterprise Development

That’s a heck of a headline for a guy who wrote a book on Yii 2, certainly not where I expected to be at this point in time. When I first reviewed Laravel 5, I had an allergic reaction to it and wrote a snarky review on Laravel 5.0 (which I’ve since removed). So how did I go from that to recommending it for enterprise development?

Well, this transition started a few months ago, with the programmers in my company expressing a desire to move to Laravel. My first impulse was to say, “no way.” I had just spent a year preparing for our move into Yii 2. I fell in love with Yii 2 and wrote a 691 page book about it for beginners. I took a lot of pride in the book and kept working on it to make sure all the code worked and was clear and easy to understand. I got great feedback from the readers and have a 4.59 out of 5 rating on GoodReads.com.

So obviously it was a bit of shock to hear about laravel from the team. But rather than take a top down approach and dictate the framework choice, I wisely chose to open the topic to discussion and evaluation from programmers who are more advanced than I am. To keep up, I had to dig in deep and see if I could find what I felt I was missing. And the deeper I went, the more things started to tilt towards laravel.

To get there, though, I had to overcome my initial bias against Laravel, which based on the fact that Laravel was built on Symfony components, used Doctrine, and seemed to hardwire migrations into the workflow, at least in all the examples they were providing. So my objection was that it was slower, bloated, and not as database centric as I preferred.

In working with Laravel, however, I found that it wasn’t noticeably slower and the use of migrations led to a good work-flow, that if used correctly, could still adhere to proper discipline concerning the DB. Plus PHP 7 is on the horizon and it looks like it will eliminate most of the framework overhead, so the concern over using a framework that utilizes other big components like Symfony and Doctrine is no longer a significant factor.

Another thing that always threw me off with laravel was the obsession with the use of dependency injection. That never really clicked with me in the past, I just could never put all the pieces together to make sense of that. It somehow seemed gratuitous.

To put a little perspective on that, I always viewed coding to a contract as a more expensive proposition without a lot of upside. I thought it was an approach that was too intellectual, not practical, a better fit for java than for PHP.

I was 100% wrong about that. 100%. Wrong. Painfully so.

Anyway, the changes in laravel 5.0 and 5.1 really brought this to light. For example, their request class, combined with method injection is a very beautiful way of handling validation.

If a class is namespaced properly, you can inject an instance into either a constructor or method signature, without having to otherwise instantiate it, a nice piece of magic accomplished by reflection.

But even better than that, the service providers allow you to bind a concrete class to a contract, so you can call the instance of the class via the contract.

This makes changing the implementation of a class everywhere in your code as simple as changing one line of code. It’s awesome. That means you can test different implementations without having to create separate branches of your project, which makes it easier to manage.

One of the big features of laravel, one that moved our team sharply in their direction, is the ease of frontend integration using blade. It’s a super-clean template engine with crystal clear syntax. It makes working with bootstrap and jquery a snap. It also makes working with interspersed html and php very easy and clean.

There’s an old saying that fortune favors the bold. It may be a cliche, but it’s true. Taylor Otwell had a bold vision for laravel going back a number of years. In his book from 2013, he talked about changing the concept of model, long before laravel 5.1 came to fruition. And in some ways, it’s a counter-intuitive move, at least in the sense of moving things towards simplicity.

In a general sense, Occam’s Razor states that simplest answer is typically the most efficient. And I’ve always found that this is a great way to approach life, business and coding. But sometimes that can cause too narrow of a vision.

This is where Taylor boldly stepped forward. Fragmenting the idea of a model into smaller components is more complicated, but results in a more efficient workflow and maximizes the gains from loose coupling. While I can’t visualize the directory tree as easily, I feel more connected to the concepts, they seem clearer.

And while the structure is more complicated, the code generation via artisan takes this into account and helps you stub out handlers, service providers, middleware, and other class types, namespacing them for you and placing them in the proper folders in the application.

I don’t know how it is for other programmers, but I find most of the laravel syntax incredibly intuitive, and more so over time. This is not an accident. It’s all part of a cohesive set of principles and design patterns that are playing out perfectly at scale. It’s proof that the SOLID principles, and taylor’s specific implementation of them, actually matter.

So this was a huge attraction for our team, a sense of commitment from the path Taylor is blazing, that if we followed it, we would become better programmers. You know you have a future in programming if that idea excites you.

The title of this post is It’s Laravel 5.1 for Enterprise. One of the reasons for this is that Taylor has developed an entire suite of products designed to support enterprise development. These include, laravel(PHP framework), forge (server management), lumin(PHP micro-framework), homestead(local dev environment), laracasts(video tutorials), elixir (asset management), artisan (command line interface), and I’m sure I’m probably forgetting something. Oh yeah, envoyer, which gives you seamless deployment with no downtime.

The point is that laravel itself is run like a commercial venture, and this is a big plus for enterprise development. With 5.1, they have also announced long term support. So that means we can count on bug fixes and security patches for years to come.

And so now this brings us to laracasts. The story of the rise of laravel would not be complete without mentioning Jeffery Way and laracasts. Taylor is lucky to have him on his team, he is a world-class instructor, helping all of us stay on the forward edge.

While I could write an entire post about the great quality of laracasts and how useful the videos are, the really short version for now is that our company purchased a company license, so that all our programmers can have access to the videos on demand. The videos are that good. To borrow from another cliche, the videos contribute to programmer happiness, which is vital to the success of the company.

So this all worked out perfectly for my company, the programmers are happy with the decision to use laravel for our future development. But where does this leave me and this blog? Obviously this post is not going to boost book sales, at least not mine.

Well, I still love Yii 2. It’s a great framework and it taught me a lot about programming. I still recommend learning more than one PHP framework and Yii 2 is an excellent choice. I’m still proud of the book I wrote for it.

At the same time, I feel a sense of loyalty to everyone who bought the book and to the readers of this blog. Rather than simply just stay silent, I thought it was important to share my views and our company’s conclusions regarding framework choice.

Going forward, I’m going to be coding in laravel. That means at 691 pages and a translation into Spanish, my Yii 2 book is complete. It’s been a great experience, but it’s time now for me to move on to a new chapter in my coding journey…

Yii 2.0 Officially Released

The stable version of Yii 2 is officially released today and I thought I would mark the occasion by writing about it. I think the release of the framework is significant and it will impact PHP programmers for many years to come.

You can read the Yii 2 official release here.

The more I learn about Yii 2, the more I like it. Even though it was only in alpha when I started learning it, and the documentation was incomplete, I was able to go much further on Yii 2 than other PHP frameworks like Symfony and Laravel. Not only could I see obvious benefits in the architecture of Yii 2, but Yii 2’s advanced template provided me with enough structure out of the box to get something started, and that something included mobile-first bootstrap design with a working user model.

Sometimes, all we need is to be able to follow a well-thought out implementation and the advanced template is certainly that. With just a little modification, I was able to create a custom, and I should say simple, access control for admin, roles, user types, etc. I was able to do it quickly, getting an application going in about week, which considering where I was as a programmer when I started, was pretty cool.

Yii 2 is just incredibly well-thought out. It seems like the dev team has anticipated just about everything you could ever think of and found a way to support it. The behaviors and event architecture is feature-rich and very intuitive. And then of course there is Gii, the amazing tool that cranks out code for you and saves you even more hours of work.

I think the biggest frustration anyone feels learning a framework is dealing with the sheer size of it. This is true of any of the big frameworks and also true of Yii 2. You can’t just snap your fingers and master it.

Yii 2 is like a Ferrari. You want to jump in and go and leave tire tracks, but first you have to take the time to learn how to drive. What a drag.

Maybe that’s not the best metaphor because it should be understood that it takes significant time reach a level with PHP that allows you to run at high-performance. Gone are the days when PHP was just a quickie scripting language that let you build a form for your webpage. What we have now is more like rocket science, or, and not to be comical, more and more like Java.

Anyway, Yii 2 has a huge code base. When you work your way in recursively, deep into the framework, you find yourself in strange territory quickly. And I guess that’s what makes the surface so amazing. The deep wizardry is extracted to base classes that allow us to have these nice intuitive methods to work with.

I’ve documented hundreds of pages of work in Yii 2, so much so, I may even write a book for beginners on it. If you really want to learn something, try writing a book about it. It’s a very exhausting, yet effective technique.

And yet, for all that work, meticulously documenting controller methods, models, view architecture, and form models, etc., I still find it hard to explain exactly which features make me like Yii 2 so much. And I think the reason for this is a non-programming term: flow. Yii 2 just seems to flow.

I tend to think in creative terms. If I have an idea, I want it to flow. I don’t want the idea to come up against endless barriers because that is what kills ideas. The extent to which Yii 2 helps my creativity flow is a measure of how much I love it. And I love it a lot. It’s driving me to learn this alien rocket science, so I can take the new rocket ship up and see what the world looks like from that orbit.

A new generation of programmers will do the same. They’ll take it to heights none of us have ever seen before. PHP is in fact alive and well and flourishing in Yii 2. Check out the poll results in some of my other blog entries and you’ll see what I mean. I find this all very exciting.

Anyway, I’ll conclude by congratulating Qiang Xue, Samdark, Cebe, and the other dev team members for reaching such a great milestone. They made something really special. If I could say I only know one thing about programming, it would be this: it ain’t easy. So, great job guys and congrats again.

Is PHP still relevant?

Recently I began wondering if PHP was still a relevant language, considering that so much focus is on mobile and that would point towards Java and Objective C.  Also, I’ve recently begun investing a lot of time into learning the Yii 2 PHP framework, which I think is awesome.  Now awesome might not be considered a technical term, but I have to tell you, I don’t mind expressing my passion for something.  I’m a human first, engineer second.

I’m always looking to expand my education and the lack of new books on PHP worried me.  Was I wasting my precious time on a dead language?  It’s only when I looked for material on PHP frameworks, that I found a bunch of titles.  There were certainly a lot of Laravel books.  One thing that impressed me about Laravel is that they really tried to impement the ideas expressed in Robert C. Martin’s book, Clean Code.  Laravel has lots of pretty, semantically pleasing code.  So I played around with Laravel, but I didn’t feel it was quite at the level of Yii, and I just happened to be researching this when Yii 2 Beta came out.  I tried Yii 2 beta and fell in love with it, especially the advanced application template.  It gets you up and running with a mobile first Bootstrap impelmentation, with a working user registration model for both frontend and backend, right out of the box.

Books on Yii 2 are as of this writing, not out yet, but they are coming.  I think they will help usher in a new generation of PHP programmers who will take it to new a new level.  Applications will be built faster, with a more robust and extensible infrastructure.  As of this writing the general release for Yii 2 is about 30 days away.

So there is a lot to be excited about, but getitng back to the original question here, “Is PHP still relevant?”, I can’t help but wonder if it will be overshadowed, either by another language such as Ruby or by a mass migration off the web via mobile.  Of course the Internet wouldn’t disappear, but I could imagine websites as we know them being a relic of the past.

Anyway, I did some searching on Google and found this article on PHP which states that Google has determined that PHP is used on 75% of all websites.  If true, that is certainly a compelling and calming statistic. PHP is widely adopted and used, even if it is not always the flavor of the month.

PHP  does seem to have a lot of haters, and people who are into other languages such as Ruby are not shy about voicing negative opinions about PHP.  A lot of the complaints about PHP seem to be rooted in ideas about what a language should be.  It reminds me of the idealism I found in the Clean Code book.

Now I’m the first to admit, I’m not qualified enough in Java to review that book.  My only exposure to Java is a single book I read on it by Richard M. Reese, when I was recovering from Gall Bladder surgery.  Out with the gall bladder, in with Java.

Anway, I couldn’t help be impressed by the robustness of Java and how its best practices imply a strong architecture that guides a developer into following best practices.  That’s the good news.  On the other hand, it was my impression, from standing at the foot of the mountain, that it would take far more programming hours to do something in Java than it would in PHP.

Also, if PHP programmers tried to follow Clean Code principles too literally, they would bloat their code base with an unmanageable number of files.  I mean unmanageable from a server standpoint, that much PHP would bog down the server. You could have extremely clean code and extremely bad server performance.  Laravel for example, suffers from exactly these kind of problems.

You can solve those problems easily if you have enough money to throw at it.  You can hire teams of Java developers who can build an elegant archictecture that supports maximum code reuse and extensibilty, if I can be so bold as to use that phrase.  Or you could throw server resources at the problems and just feed the beast.  The thing is, doing so will cost you a fortune, and most companies don’t operate with those kinds of budgets.

PHP is a low-cost alternative to that.  So please don’t sneer at it, Mr. Investor, when a start-up tells you they are using PHP. The language, while not as robust as Java, has evolved, and become more object oriented in 5.4 than in previous versions, with namespaces, traits etc.  Frameworks like Yii 2, which use PHP 5.4 and above, can help you do amazing things in a rapid development environment, with templating and code generation.

So here I am making the case for PHP, but I don’t really need to.  The google stats speak for themselves.  Wise, pragmatic programmers already know that PHP is still very relevant.  This doesn’t say anything negative about other languages or frameworks.  They all have their strong points.  Liking one language is not a good reason to hate another.

And finally, looking into the crystal ball for the future, I will address the mobile issue.  I think we will see more cross platform development, like Zend is doing with their Zend Studio product, which I should note, I do not use, so this is not an endorsement.  But I do find interesting that you can build a front-end mobile app and have it be directly connected to your servers and your web architecture.

When I checked it out, I didn’t love the Zend PHP Framework, I didn’t find it intuitive or easy to use, so I’m not really following their IDE.  But I do think we will see more products like this in the future and ultimately, PHP will be supported.  After all, 75% adoption on the web is too much to ignore.

Vote in the poll at the top of the page about whether or not PHP is still relevant and let us know what you think.