PHP 7 Why It’s Great and Our Compatible Extensions

We have great news at Extendware. Not only are we adding new Magento 2.0 extensions weekly, but we are also updating our extensions to PHP7. Many of them are available now so we thought we would share a little bit about PHP7 here in our blog!

Much Faster Speed

A great advantage of the new PHPNG engine is the significant performance improvement. The development team of PHPNG refactored the Zend Engine, and remarkably optimized memory usage. With PHP 7, not only your code will be executed faster, but you will also need fewer servers to serve the same number of users.

64-Bit Windows Systems Support

PHP is a prominent member of the LAMP stack which means its native environment is Linux, but it’s also possible to run it on a Windows system. PHP 7 introduces consistent 64-bit support which means both native 64-bit integers and large files will be supported, allowing you to confidently run the language on your 64-bit Windows system in the future.

The New Zend Engine

The Zend engine has been powering PHP since 1999 when it was introduced with the PHP 4 release. Zend PHP#NG-01-01(not to be confused with the Zend Framework) is an open source execution engine written in C that interprets the PHP language. PHP 7 receives an entirely new version of the engine coming under the code name of PHP#NG (Next Generation). The enhanced functionality of the initial engine and adds an extensible object model and a significant performance enhancement to the language.

Anonymous Classes

PHP 7 enables you to use anonymous classes, already a well-established practice in other object-oriented languages like C# and Java. An anonymous class is a class without a name. The object it instantiates has the same functionality as an object of a named class.

The syntax is the same as what we are used to in traditional PHP classes, only the name is missing. If anonymous classes are used well, they can speed up coding as well execution time. Anonymous classes are excellent when a class is used only once during execution and in cases when a class doesn’t need to be documented.

Error Handling

Handling fatal and catchable fatal errors have never been an easy task for PHP coders. The new Engine PhP image 2-01Exceptions will allow you to replace these types of errors with exceptions. If the exception is not caught, PHP will continue to return the same fatal errors as it does in the 5.X series.

The new Engine Exception objects don’t extend the Exception Base Class. This ensures backward compatibility and results in two different kinds of exceptions in error handling: traditional and engine exceptions. To enable programmers to catch both, PHP 7 introduces a new shared Parent Class under the name of Base Exception.

New Spaceship and Null Coalescing Operators

The Spaceship operator runs under the official name of Combined Comparison Operator. The notation of the new operator looks like this: <=> (kind of like a simplified spaceship, if you imagine it right). The Spaceship Operator returns 0 if both operands are equal, 1 if the left is greater, and -1 if the right is greater. It’s also called a three-way comparison operator, and it already exists in other popular programming languages like Perl and Ruby.

The Null Coalescing operator is denoted with two question marks ( ?? ). You can use it when you want to check if something exists and return a default value, in case it doesn’t. The coalesce operator returns the result of its first operand if it exists and is not null, and the second operand in any other cases

Enables Accurate Type Declarations

Have you ever wanted to prevent unintended return values by declaring the return type of a function? PHP 7 enables developers to enhance the quality of their code with the help of return type declarations.

Imports from the Same Namespace

The new Group Use Declarations feature will be crucial for those who want to import many classes from the same namespace. The new syntax cuts verbosity, makes your code tidier and easier on the eyes, and saves you a lot of typing time. It will also be easier to read through and debug codes, as group use declarations help you identify the imports that belong to the same module.

Frees Up Space

The goal of PHP 7 was to free up the space to enable improvement, so it was necessary to get rid of many deprecated functionalities and old and unsupported Server APIs and extensions.  All the removed items have been deprecated for a while in PHP 5 so most likely you haven’t used them for a long time. However please note if you have a legacy app running on older PHP versions the new PHP 7 can potentially break the code.

Check out some of our updated PHP7 compatible extensions!

LLucene-Searchucene Search

Increase revenue and customer satisfaction with faster, more relevant search results. Lucene Search is a powerful and flexible search solution that helps ensure your customers can always find the products they want.

 

Full Page CacheFull-Page-Cache-(Web)

Full Page Cache reduces your Magento store’s First Byte Time, Increases your web server request rate, reduces database load, and makes your store much more responsive

 

 

CacCache-Crawlerhe Warmer

The Magento Full Page Cache Crawler / Warmer will ensure your Full Page Cache solution is always “warmed” and ready to serve your store pages at the fastest speed possible. The extension is efficiently coded to reduce bandwidth, CPU, and crawling time.

 

 Image OptimizationImage-Optimization-(Web)

Images are very important for online stores, but unnecessarily large images can slow down the user experience and reduce search engine rankings. Image Optimization will optimize your images and reduce their size without sacrificing image quality, so that your site images are faster loading.

 

Auto-Translate-(for-web)Auto Translate

Increase your stores potential customer base by allowing users to translate the page to their preferred language. Ensure advertising campaigns and feeds targeting certain languages will automatically translate to that languageMinify 1.0

 

Product-Labels-(For-web)

Product Labels

Automatically highlight your special offers, featured products, sales, and more. Multiple images / labels per products supported, flexible rules, and many, many options to empower you to market your products the best way possible.

Why Not Follow and Like Us?

Improving Magento Store Speed

Let me guess. You were browsing your own Magento store and found the experience frustrating. You thought to yourself “should I be worried about this?” and started Googling and landed on this page. Well, let me tell you, you should be worried about your store speed and how to increasing Magneto store optimization. If you are frustrated with the speed of your store, imagine how much frustration your customers are feeling. Unfortunately, Magento performance is not good without tweaks, configuration, and testing.

Why is a Fast Store Important?

The answer is simple: Money. Yes, I said it. You are in business to make a living as well as provide a valuable service to people. Both of those things are helped by having a faster Magento store. Here, let me explain:

  1. Increase conversion rates – There has been a lot of research into store speed and conversion rates from Amazon, Walmart, and other big retailers. It has been discovered that there is a direct correlation between speed and sales. Conceptually it is easy to understand… If you provide a better experience, then people will order more.
  2. Increase search engine rankings – Google caught onto the whole Speed == Quality. If customers purchase more and have a better experience on faster stores, then it only makes sense that Google will be providing a better service by to its customers by redirecting them to higher quality stores. As a result, Google now makes store speed as a ranking faster. The math is simple: The faster your store, the higher your search engine rankings.
  3. Provide a better experience – Ultimately, it comes down to the experience and value you want to provide your customers. If you provide a fast experience they will be less irritated and find you store easier to use. This builds loyalty and reduces friction to order from your store.

What are the Components of Store Speed?

It’s really quite. There are only two aspects of Magento speed that are relevant:

Generation time

This is how fast your server can put together your page and serve it up to the user. There are some other factors that can influence this such as network latency, but in general, the dominant factor is your servers ability to serve pages. This aspect of store performance is crucial as it affects every page and it is very important for SEO.

Download time

Once your base HTML page is generated and served, then the client browser must begin to download all the resources it references. This is your Javascript, CSS, and Images. The process of downloading these resources can take a while depending on their size and structure.

The Solution

I get it. You have a business to run. You don’t want to know about all this technical stuff. What you want is an awesome solution to speed up your Magento store in an easy way. The solution is very simple and it will speed up both generation time and download time:

Generation Time Enhancers

  1. Full Page Cache – Cache your HTML pages so they can generate very, very fast.
  2. Cache Warmer – Crawler your store to ensure the pages are cached.

Download time enhancers

  1. Minify Javascript / Css – Make your javascript / css/ HTML smaller and faster to download.
  2. Image Optimization – Optimize store images so they can be downloaded faster and reduce bandwidth.

It’s that simple. Speed up both aspects of slowdowns and have the fastest store possible. Contact us for any questions!

Why Not Follow and Like Us?

10 Steps to Make Magento Speed Faster

At Extendware we specialize in Magento performance extensions and as a result we have learned some things about speeding up Magento along the way. These are 10 easy steps to make Magento faster. The list is not comprehensive of course, but it is applicable to most Magento stores.

Use Extendware Page Cache

The Magento Full Page Cache extension by Extendware will reduce load on the database and server load and improve First Byte Time. The result is a much faster and more stable store. For most Magento stores this speed tip will provide the single fastest improvement in Magento speed.

Minify Javascript / CSS / HTML

Once the First Byte Time is super fast you will want to ensure the Download Time is fast. This is another component of Magento page load. To do this you will want to use the Minify JS / CSS extension which will reduce the size of javascript / css and HTML pages. In addition, it can improve browser caching, do pre-compression and a lot more.

Optimize Images

Very few stores are optimizing images which is quite important considering that images change on every page load. This means that the browser cache is not effectively used. So, though a small improvement on a per-page basis it produces a large speed benefit in aggregate. The easiest way to optimize images is with the Image Optimizatoin extension.

Enable Flat Catalog in Magento

The bottleneck of Magento is almost always the database. To improve the speed of database reads you should use enable Flat Catalog in magento under System -> Configuration -> Catalog -> Frontend. This will reduce the number of database joins done when showing products and as a result reduce MySQL query complexity. The end result is more speed.

Optimize MySQL Configuration

Many stores run MySQL configurations that are not optimized for Magento. Magento use a lot of indexes and a lot of joins. As a result, it will need adequate memory for both of these activities.

Enable Magento Cache

Magento has an internal cache for its configuration, layouts, and blocks. Some stores forget to enable this, so ensure that this is enabled in System -> Cache Management.

Remove 3rd Party Extensions

If you are using extensions that were not created by Extendware, then you will want to disable them. About 50% of all store performance issues are caused by poorly created extensions. When possible you will want to use Extendware extensions as they created with performance in mind.

Enable System Compilation

Magento can combine the PHP files of your store, so that it uses less disk access. This is called System Compilation and can be important if you do not use an opcode cache or you are not on SSD disks. To enable this you can go to System -> Tools -> Compilation.

Review your Hosting Provider

Many hosting companies are oversold and do not offer good performance for the money. In addition, some are just not compatible with Magento. For example, Siteground is a poor choice for Magento hosting as its limitations are too restrictive to run a well-run Magento store. Choosing a better host will help your business reach the next level.

Use a PHP OpCode Cache

A PHP OpCode Cache such as APC can speed up the loading of the PHP files which results in an improved Magento Store speed. This is especially important if you are not using hosting with SSD disks.

Why Not Follow and Like Us?

Minify HTML in Magento

Minify-Js--Css-(Web)Minifying HTML in Magento is one of those hidden Magento performance tweaks that few stores do. Almost everyone is minifying javascript and css thanks you our Minify Javascript / CSS Magento extension. However, few people enable the ability to Minify HTML which this extensions also supports.

Why should I Minify HTML?

It is important to optimize the size of your main HTML page because these cannot be cached by the browser (unlike javascript / css) and as a result the speed enhancement will affect almost every request. Many servers will compress the HTML of a page and that is extremely important to the page size. However, if the server is not doing this, then HTML minification becomes extremely important. Even when compression is used the minification process of HTML can still decrease page size by many percent, which will add up when you consider it affects every request.

How do I enable HTML Minification in Magento?

It is simple. Follow these steps:

  1. Purchase Minify Javascript / CSS for Magento and install it in your store
  2. In your store backend go to Extendware -> Manage Extensions -> Minify JS / CSS -> Configure -> Files and enable the HTML Minification option. There are three different modes to choose from. Usually the default is best setup.

Quick Overview

Speed up your site, improve your search engine site rankings and conversion rate, and improve your user experience in the process. Minify Js / CSS extension reduces page size, bandwidth, request count, and server load without anything more than installing this easy to use and feature-full extension.


 

Why Not Follow and Like Us?

Magento eliminate render-blocking JavaScript

Defer loading of javascript can significantly decrease the page load of your Magento store. Magento uses a lot of javascript and the browser will wait for this javascript to completely download before it renders the page. Now, the Magento Minify Javascript / CSS can eliminate render-blocking javascript.

Site Optimizer already will increase your site speed by minifying javascript / css / html and merging your js / css and even optimizing your images and putting forever expiries on your resources. Javascript deferred loading is the next step to fully optimize your store speed. Our deferred loading technology will work out-of-the-box with all of our Magento extensions and default magento. It will also work with many 3rd party extensions without any modifications.

In addition to javascript deferment we have updated the Site Optimizer with other under-the-hood improvements such as optimizing media images that are inside of cms pages and static block content.


Quick Extension Overview

Speed up your site, improve your search engine site rankings and conversion rate, and improve your user experience in the process. Minify Js / CSS extension reduces page size, bandwidth, request count, and server load without anything more than installing this easy to use and feature-full extension.


 

Why Not Follow and Like Us?

Performance of Merging Javascript / CSS in Magento

Minify-Js--Css-(Web)Summary: Built-in merging of Javascript / CSS will slow down your store. You need Magento Minify Javascript / Css to properly merge files

Many store owners are enabling Javascript / CSS merging in Magento in order to “increase performance”. You can go to System -> Developer and look under Javascript and CSS Settings to see if your store is currently merging Javascript / CSS. If you have enabled merging, then we recommend that you disable this setting now. If you need proper merging, then you should purchase Minify JS / CSS.

Why is built-in merging of Javascript / CSS bad?

It breaks the browser cache. Merging is not done in an intelligent way. It is done too aggressively as all files are merged into one css and one javascript file. This is effective one a single page, but is not effective for a site as complex as Magento. As your customers change page types (home page -> catalog page -> product page) then it will generate new merged URLs which breaks the browser cache and causes the redownloading of all your CSS / JS files.

Why does the default merging generate different URLs for different page types?

Different page types have different CSS / Javascript requirements. Your home page may include 10 javascript files while your catalog page might include 12 javascript files. As a consequence, the merge URL for the 10 file merge will be different than for the 12 file merge.

Does this mean it is better to disable merging?

Yes, your site will be faster if you disable merging. Alternatively, you can use Minify JS / CSS for Magento, which merges intelligently. Your Google Page Speed will decrease if you disable merging and do not use Site Optimizer. However, Google Page Speed only measures page speed. It does not measure site speed. An individually loaded page will be faster with merging enabled, but your entire site will be slower. So, if your customers visit more than one page, you want to disable merging.

Is there a way to verify merging is done properly or not?

Yes, go to the home page of your site and record all javascript / css urls. Then, do the same for a catalog page and a product page. Next, verify that the urls are all the same if the same content is shown. With default merging enabled, you will notice different urls and when you go to the urls you will notice that 90% of the javascript / css is duplicated among the different urls.


Quick Extension Overview

Speed up your site, improve your search engine site rankings and conversion rate, and improve your user experience in the process. Minify Js / CSS extension reduces page size, bandwidth, request count, and server load without anything more than installing this easy to use and feature-full extension.


 

Why Not Follow and Like Us?

Magento Javascript / CSS Merging

Extendware’s Magento Minify JS / CSS 1.2.8 was released today and it includes some very important compatibility features. In previous versions of Magento Minify JS / CSS the order of javascript / CSS was not guaranteed to be the same as before the extension is installed. Now, the order that these files are loaded is guaranteed to be the same as before when selecting the “Never”, “Automatic” and “Always” merging modes. “Automatic (aggressive)”, the previous behavior, can still be used and it will merge more files. The order of loaded files only affects some Magento stores, so try the different merge modes and see which one is best for your store.

In addition, this release solved an issue where the merging of pre-minified files and normal files were causing issues with some browsers. Now pre-minified files are not combined with normal files and this solves the browser issues.

Why Not Follow and Like Us?