The Hidden Benefits of iPage Web Hosting

The Hidden Benefits of iPage Web Hosting

If you are in search of a web hosting solution and you want to go with something simple, streamlined, and powerful that isn’t going to break the bank, iPage is one host you might want to consider. More than a million customers use iPage, and the company has received outstanding reviews from individual customers as well as third party review sites. What are the major benefits? Let’s take a look.

  • iPage is designed with ease-of-use in mind, and is clearly aimed at a wide array of users. These include power users searching for a rich abundance of features, as well as novice users who just want some kind of cheap hosting solution they can rely on. The website itself is nicely set up and information on plans is easy to find.
  • The iPage Essential Plan starts at just $1.99 per month, which is a great introductory offer. This basic plan includes unlimited hosting space and domains, free domain registration, and numerous other tools. You get a point-and-click site builder (great if you are not a coder), a free blog, and a free online store. You also get free email accounts.
  • The $1.99 introductory rate on the Essential plan lasts for quite a while. You can use this hosting service at that price for three whole years before the price gets raised.
  • There are a ton of e-commerce and e-marketing tools. The store creation wizard will get you set up fast with product pages and payment options. You are a bit restricted with customization, but the store templates look modern and appealing.
  • WordPress hosting is available. The database is all ready, so you can get set up quickly. If you already have a WordPress blog you want to import, you can do it with the click of a button. WordPress itself includes a feature for importing, but many users find the iPage button easier to use.
  • Shared, dedicated, and VPS hosting packages are all available. There is something for everyone, so whatever your specific needs are, you will find a hosting plan which suits you. VPS hosting plans start at around $24.99. This is a little more expensive than some competitors, but still pretty reasonable.
  • There are all kinds of exciting freebies that come with your iPage plan! You get a free domain, and you get $100 in Google AdWords. You receive 1GB of storage from Just Cloud. You get another $100 in advertising credits from Yahoo and Bing. SiteLock Enhanced Security Software is also included for free. When you add up all these free extras, you get $500 worth of value.
  • iPage offers 24/7 customer service by phone, and also backs its services with a 30-day money back guarantee. The customer service team is based in the USA, and the average wait time for calls is just two minutes. The site also provides a comprehensive knowledgebase including free video tutorials.

How do you know whether iPage is the right web host for you? There are a lot of great hosts out there, and there is no single host which is the “best” out of all of them. Each has its benefits and drawbacks, including iPage. What you are looking for is the host which is going to be the right fit for your website needs.

Research by reading an in-depth iPage review. Find out what customers are saying, and write up a list of features you are looking for. Check your list against the features iPage offers. If iPage looks like a good match, then you have found your new web hosting company!

Pragmatic PHP MVC

Pragmatic PHP MVC

I recently completed an A-Level project in PHP. It went quite well, but I was still keen to improve on my design methodology. To a “weekend silicon warrior” this may seem unnecessary, but I assure you the bigger applications you write, the more consideration you’ll find yourself putting into the design to stop headaches later. Specifically I was interested in MVC programming, as I was really annoyed at the repetition of code involved in generating other views in my web-application (part of the A-Level project involved generating PDFs). So I’ve been hanging around Sitepoint’s PHP Application Design forum and reading various sites such as PHPPatterns trying to glean information.

Suffice to say a whole new vocabulary opened up to me. It was a bit daunting at first, but I wholeheartedly recommend learning at least some of it. The “pattern” names themselves are essentially just ways to easily identify abstract coding methodologies so everyone knows what they’re talking about. Basically this allows people to drop acronyms like “MVC” into normal conversation, even though it in itself isn’t anything, it being an idea composed of three coding practices:

Model: Where all your “business” logic is stored.

View: How the output of the model is displayed (going back to my little PDF generation problem).
Controller: The thing that glues the model and view together according to what the user wants.
Unfortunately definitions like that are always up for dispute and alteration/addition but essentially as long as you always keep in mind the goals behind code separation you can’t go wrong; as MVC is more a frame of mind than set-in-stone rules. It’s best to keep a strictly pragmatic view when deciding what’s best for your application: just because something looks cool doesn’t mean it will instantly benefit you. Going back to my PDF generation problem I wanted to use MVC so that I could:

Generate raw output from my business logic. (Database queries and things)

Give that to the appropriate view. (According to user request HTML or PDF)

Not repeat any business logic.

Which fits into the MVC paradigm nicely. Obviously if you had a relative simple PHP application, like a mailer, then you wouldn’t want to add all the extra MVC bother. A signature I saw somewhere on Sitepoint springs to mind, it was actually referring to XML, but to paraphrase regarding MVC:

I once had a problem, that you can read in a Web Hosting Hub review, so I decided to use MVC. Now I have two problems.

However now I tend to recommend you lean towards MVC as it simply means that your application will be more flexible if you did want to include another view/interface to your system. This can be especially useful in–surprise, surprise–web applications where you must keep up with the times to allow users to access your content in different ways, which we’ve seen with the advent of RSS etc.

Unfortunately things are rarely a simple case of decide and go with it, as I found out while hacking on the backend to my latest website project. The problem I had was to do with the way I was handling user authentication through sessions. Before reading on, I suggest you have a look at some notes on Front Controller implementation with PHP to fully understand my predicament. See also diagram on the right.
Diagram showing flow chart for the front controller

Basically I wanted something different from the Zend framework’s all requests being routed through one file approach (see comment) I wanted to split up the Front Controller into smaller chunks. My sentiments are summed up by a post to a Sitepoint thread regarding the subject. Summed up my gripes are:

Everything being routed through one file creates a dependency on that file, thus impairs the modularisation of code. For instance any project would have to also implement the Front Controller pattern for the code to be easily integrated into.

The Front Controller needs to know about every action the user could request, or otherwise it wouldn’t know what controller to dispatch.

Leading on to this, it means the Front Controller would require some sort of data set that maps actions to controller files. As PHP is intrinsically designed to initialize a fresh environment on every startup, this means that it will have to continually reload this data set, which would grow in size in proportion to the application making it potentially a bottleneck in the system.

You could solve this bottleneck by making some kind of include system, perhaps implementing a dynamic string concatenation system to get to your required controller, instead of a data set, but at the end you’re still left with the problem of code modularity. Incidentally this is what the Zend Framework does (see comment below) but other frameworks I am aware of don’t, and you’re left with the problems as aforementioned.

Diagram showing the Page Controller pattern

Those points are basically rehashing what was in that post. My “solution” to this problem was to use the Page Controller pattern. See the diagram left.

“The Page Controller has one input controller for each logical page of the Web site.”

However that approach generated some problems for me. The reason that the Front Controller is a popular pattern is that you can call Intercepting Filters. I was getting some problems without using them:

I was getting code duplication by having my Page Controller also deal with the whole process of authentication by in turn using more methods in the Model. Each additional Controller and Model page would also need all this code.

This in turn affected the Page Views, I needed to create views to send out all the authentication messages etc.

I even considered multiple inheritance (luckily not possible with PHP), since multiple inheritance usually suggests something’s going wrong…

However I managed to find a lovely piece of code that looks at Intercepting Filters in a very concise way. The use of chained methods is reminiscent of Linked Lists if you’ve ever done Computer Science (I haven’t, I’ve just read about them).

My current system uses Page Controllers with those Intercepting Filters, but instead of having the Intercepting Filter classes output anything, I instead just put a header redirect to a page more suited to dealing with the new task(s). For instance if a user needs to be authorized to access any particular page, the Intercepting Filter class checks, then if they’re not header-redirects them to the appropriate page (login.php).

When the system is all up and running in hopefully a month or so, I’ll post some code.