PHP 7 – All Set to Enhance and Accelerate The Web Performance This October
18 Apr

All technology giants and developers are desperately awaiting the release of PHP 7. It is expected to be bundled with some stunning features that not only doubles the performance but also enriches the user experience. Developers can make sure that we will see 360 degree change in performance and speed. With version 7, PHP should receive a JIT engine, which can dynamically compile Zend opcodes into a native machine code, engine improvements, lower memory usage, native local thread storage, language compatibility and much more.

Let’s look at some of the major changes and features we are expecting in PHP7.

1- Standalone Multi thread Web Server

Having standalone multi-thread server might not be in PHP 7 version but it can be expected in higher version that would surely make PHP more scalable. A multi-threading Web server can handle many simultaneous requests using a single database, thus save memory. PHP 7 will reduce the need for servers and make it a great choice environmentally.

2- Performance Improvements

The main purpose of PHPNG was to bring performance improvements that could be mapped with the features that Facebook HHVM provides. Zeev Suraski of Zend has written an article in which he openly admits that they treat HHVM as a competitor of (the Zend Engine based) PHP. In the article Zeev demonstrates how far PHPNG branch has evolved in terms of performance improvements.

3- (Just in time) JIT Engine

A JIT engine can dynamically compile Zend opcodes into native machine code that eventually would make the code run faster next time it is run and improve performance. It is certainly in the plans of Zend to allow bringing a JIT engine to PHP 7, according to Zeev Suraskiit.

4- AST: Abstract Syntax Tree

Nikita Popov proposed the introduction of an Abstract Syntax Tree (AST) in PHP compilation process that would support the PHPNG branch. Few advantages of using Abstract Syntax Tree (AST) are:

  • The potential for more optimizations that would make PHP run even faster
  • Open space for more interesting tools like static code analyzers which are often useful to detect bugs
  • Maintainable parser and compiler and better code quality

5- Asynchronous Programming

This feature would allow implementing and execution of parallel tasks within the same request. thus pushing PHP performance improvement potential to a different level. New PHP code needs to be written to take advantage of the asynchronous programming potential. Julien Pauli explained the asynchronous programming factors, refactoring PHP I/O multiplexing layer.

Check out latest info-graphics showing all the information about new PHP 7 versions:

When to expect PHP 7 Release Date?

The release date is not yet confirmed, but the initial versions release can be expected in mid October 2015 as mentioned in Wikipedia, and later we can expect its further versions.

Do you like this latest PHP development posts? Is there anything else you’d like to see happening in the PHP language in future? Let us know through your comments, what do you think about upcoming PHP 7.

How to create PowerPoint file using PHP.
13 Apr
Introduction:

One has to mostly deal with  requirement of exporting data to Excel, Word or PDF. Whereas, requirement of exporting data to PowerPoint slides remains as moon in daylight – elusive. Here, We will make ourselves familiar with PowerPoint generation concept using PHP PowerPoint library. Which is available on http://phppowerpoint.codeplex.com/.

Steps to Setup:
  • Download zip version of library from http://phppowerpoint.codeplex.com/releases/view/26621
  • Extract it and place it to root folder of your Project.
  • After extracting folder you will find three sub folders – namely ‘Classes’,’ Documentation’ and ‘Tests’.
    • Classes folder contains all magic code to library.
    • Test folder holds Sample code for taking first step towards this unknown world.
    • Documentation folder has API information.
  • Include reference of library by setting up path to library using following two line of code in top of your business logic file from where you are going to start writing your logic.
set_include_path(get_include_path() . PATH_SEPARATOR . ‘../Classes/’);

include ‘PHPPowerPoint.php’;
include ‘PHPPowerPoint/IOFactory.php’;

Then after, Place below code to start with simple slide.
$objPHPPowerPoint = new PHPPowerPoint();

// block sets slide logo.
$currentSlide = $objPHPPowerPoint->getActiveSlide();
$shape = $currentSlide->createDrawingShape();
$shape->setName(‘PHPPowerPoint logo’);
$shape->setDescription(‘PHPPowerPoint logo’);
$shape->setPath(‘./images/phppowerpoint_logo.gif’);
$shape->setHeight(36);
$shape->setOffsetX(10);
$shape->setOffsetY(10);
$shape->getShadow()->setVisible(true);
$shape->getShadow()->setDirection(45);
$shape->getShadow()->setDistance(10);
// block sets slide logo ends.

// block sets text for first slide.
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(300);
$shape->setWidth(600);
$shape->setOffsetX(170);
$shape->setOffsetY(180);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER );
$textRun = $shape->createTextRun(‘Thank you for using PHPPowerPoint!’);
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(60);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( ‘FFC00000’ ) );
// block sets text for first slide ends.

$filename = str_replace(‘.php’, ‘.pptx’, __FILE__);
$newname = “PresentationReport-” . date(‘Y-m-d-H-i-s’) . “.pptx”;
$objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint, ‘PowerPoint2007’);
$objWriter->save(str_replace(‘.php’, ‘.pptx’, __FILE__));

// block to download file.
header(“Pragma: no-cache”);
header(“Expires: 0”);
header(“Cache-Control: must-revalidate, post-check=0, pre-check=0”);
header(“Content-Type: application/force-download”);
header(“Content-Type: application/octet-stream”);
header(“Content-Type: application/download”);
header(“Content-Disposition: attachment;filename=” . $newname);
ob_clean();
flush();
readfile($filename);
exit();
// ends.

Source of Inspiration:
http://phppowerpoint.codeplex.com/

Contributors: Monil Patel / Hardik Deliwala.