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.

Reduce bandwidth, CPU, and crawling time with Cache Crawler/Warmer

The web contains trillions and trillions of pages, which can make it hard for your customers to find your store at times. We rely heavily on Google to find things for us and Google is able to do this with something called a Web Crawler.

Stores with a high number of unique pages compared to their traffic will tend to have a low hit rate and as a result caching solutions are not effective. The Magento Cache Crawler solves this by crawling and pre-caching the pages on your site, which will increase the cache hit rate

Here are some more great features of the Cache Warmer/Crawler Extension

Efficiently Crawl Your Magento Store to Warm Your Caches
The crawler will only access each page one time during a crawl session to ensure there is no duplicate effort. In addition, pages your users cannot access (disabled products, children of configurable products) will not be crawled.

Crawl All Your Important Pages
Crawl CMS pages, catalog pages, and product pages. When used with the Full Page Cache, all your layered navigation filter options, deep catalog pages, searches, and 3rd party extensions will be crawled without any further configuration.

Ensure That Server Load on the Server Does Not Become High
A crawler increases server load in exchange for faster page speed. If there are lots of things happening on the server, then it can create high server load. The crawler can detect this and automatically pause itself and automatically restart when the server load reduces. This ensures that the crawler does not compete with user traffic for server resources!

Cache Warmer/Crawler
Cache Warmer/Crawler

Crawl as Quickly as Possible Using Multiple Crawler Threads
Multiple threads will be used which can reduce the total crawl time by 10 times or more.

Crawl as Logged in Users
Do you show different content to logged in users? If so, it might make sense to crawl as a logged in user so their cache can be warmed. You can now easily select which customer group you want to crawl.

Crawl Out-of-Schedule Jobs By Manually Adding It
Did you flush the cache and need to run a job real quick even though it is not scheduled yet? No problem, you can easily add a manual job that will run immediately.

Don’t Crawl Disabled / Hidden / Out-of-Stock Products
Ensure you don’t waste resources crawling products that would be infrequently viewed or not viewable at all!

Filter Out Generated URLs by URL Type
Easily filter out certain pages such as category pages or cms pages or product pages from being added to the queue. This is useful if you only want to crawl category pages or certain page types.

Always View the Status of Crawls and Manage Crawls Using an Easy Interface
Easily view past crawls, currently running crawls, and queued crawls. Pause or disable crawls. Change the number of threads used. View the number of crawled URLs, the source of the URLs, and view performance metrics such as the number of crawled URLs per minute.

View current and past crawler jobs
View current and past crawler jobs

Filter Out any URL by Regular Expression
Easily ensure that URLs that match a regular expression will not be crawled. This is useful if you do not want certain pages to be crawled.

Fully Support Crawling of HTTPS Secure URLs
Is your site running in secure mode on the frontend? The crawler will crawl your secure pages too.

Reduces Bandwidth and CPU Usage During Crawls
When combined with our Full Page Cache there will be reduced bandwidth and processing done when loading uncached pages loaded by the crawler process.

Flush Caches Prior to Crawling
Flushing Magento caches prior to crawling is important to ensure that the crawler crawled pages are the most up-to-date.

 

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!