PHP Classes

PHP 7 Migration Guide Part 4: New Classes, Interfaces and New Global Constants

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog PHP 7 Migration Guide...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)  

Author:

Viewers: 1,699

Last month viewers: 2

Categories: PHP Tutorials

In the previous part of this migration guide tutorial series it was covered new and changed functions in PHP 7.

But maybe more interesting to all developers that live and breathe Object Oriented Programming every day is what is new in terms of built-in classes and interfaces.

Read this article to learn not only about new classes and interfaces added in PHP 7 but also relevant global constants.




Loaded Article
Picture of Atif Shahab Qureshi
By Atif Shahab Qureshi United States

cloudways.com/en/

<email contact>

Contents

Introduction

New Classes and Interfaces

New Global Constants

Conclusion

PHP 7 logo

Introduction

PHP 7 introduced so many changes, that it was necessary to split this migration guide tutorial in several parts.

This time it will be covered the new classes, interfaces and global constants based in the official documentation of changes of PHP 7.

New Classes and Interfaces

Intl

The Intl extension is basically for internationalization. Using this extension PHP developers may perform actions like encoding text, locate text boundaries, perform date and time calendar operations, format and transliterate text.

This extension was introduced in PECL repository and in PHP 5.3 after the plans for the original PHP 6 were dropped out. In this extension, only one new thing that was introduced in PHP 7.

IntlChar

IntlChar provides access to functions which are needed for manipulating text using Unicode characters. These functions are similar to those provided by the ICU library. Along with these, a list of Predefined constants has also been introduced in PHP 7.

Reflection

The reflection API makes it possible to introspect methods, extensions, interfaces, functions to retrieve details of classes. With the Reflection API, the following two features were introduced in PHP 7.

Reflection Generator Class

This class is used for reporting about a generator. It has further classifications as below:

ReflectionGenerator::getThis

It will be used for obtaining $this value

ReflectionGenerator::getFunction

It will return the function name of the generator

ReflectionGenerator::getExecutingLine

It will return the recent executing line of generator.

ReflectionGenerator::getExecutingGenerator

It will return the executing generator object.

ReflectionGenerator::__Construct

It will construct reflection object

ReflectionGenerator::getTrace

It is used for getting trace of executing generator.

ReflectionGenerator::getExecutingFile

It will return the file-name of recently executing generator.

Reflection Type Class

This class is basically for the purpose of reporting information about return type of the function. It has following three classes:

ReflectionType::__toString

To string

ReflectionType::isBuiltin

It will check whether it is a built-in type

ReflecctionType::allowsNull

It will check null is allowed or not

Session Handling

Sessions are used in PHP for storing data related with the current user as he navigates through different pages. A user that comes on the Web site is given a session ID. It may be stored on a user client side via the cookies.

Although the concept of sessions was implemented many years ago in PHP 4, the SessionUpdateTimeStampHandlerInterface is the new thing that was introduced in PHP 7.

Exception Hierarchy

Division by zero error

DivideByZeroError will be displayed when your code makes an attempt to divide any number by 0.

ArithmeticError

This error will occur in result of any attempt to perform a bitshift by negative amount or may be due to call to indiv(), which will ultimately result in value other than the boundaries defined for the integer.

AssertionError

This type of error occurs in result of assertion through assert() failure.

Parse Error

Parse error occurs in result of parsing when function eval() is called.

TypeError

This type of error occurs in result of 3 scenarios:

1. When invalid number of arguments are passed to a PHP function

2. When declared function return type does not match the type of value returned by a function

3. When argument type passed is mismatched with declared parameter type

Error

The base class of all errors is Error. Following are the list of error classes:

Error::getCode

It will return the code of error

Error::getPrevious

It will return the last throwable

Error::getMessage

It will return the error message

Error::__construct

It is used to construct error object

Error::getTraceAsString

It will return the stack trace as string

Error::getTrace

It will return the stack trace

Error::getLine

It will return the line where error has occurred.

Error::__toString

It is used for string representation of error.

Error::__clone

It is used for cloning of error

Error::getFile

It will return that file due to which error has occurred

Throwable

It is actually the interface for object which is thrown using the throw statement, which includes exceptions and errors. You can use Throwable with the methods below:

Throwable::__tostring

It will return string representation of thrown object.

Throwable::getPrevious

It is used to return the previous throwable

Throwable::getTraceAsString

It will return the stack trace in form of string.

Throwable::getTrace

It will return the stack trace

Throwable::getLine

It will return the line where object was instantiated.

Throwable::getFile

It will return the file where exception occurred.

Throwable::getCode

It will return exception code.

Throable::getMessage

It will return the message

New Global Constants

Global constants are values that are predefined by PHP for the purpose of using functions of certain extensions. The actual new constants may not be so interesting to you if you do not use these extensions. So, I just leave it here for reference just in case you use these PHP extensions.

Core Predefined Constants

This is the list of predefined core constants including the ones defined by SAPI modules, Zend Engine and PHP. The newly introduced core constant in PHP 7 is PHP_INT_MIN.

Libxml

These constants rely on libxml extensions, XML writer, XMLRPC, XML Reader, XML, XSL, WDDX, SOAP, SimpleXML, DOM. The newly introduced one was LIBXML_BIGLINES

PCRE

These are the functions which perform operations on regular expressions. The newly introduced in this list is PREG_JIT_STACKLIMIT_ERROR.

POSIX

POSIX functions are specific of operating systems that provide APIs that comply with POSIX standard.

The newly introduced constants used by POSIX functions are:

POSIX_RLIMIT_Core

POSIX_RLIMIT_DATA

POSIX_RLIMIT_LOCKS

POSIX_RLIMIT_MSGQUEUE

POSIX_RLIMIT_As, POSIX_RLIMIT_CPU

POSIX_RLIMIT_FSIZE, POSIX_RLIMIT_MEMLOCK

POSIX_RLIMIT_NICE, POSIX_RLIMIT_NPROC

POSIX_RLIMIT_RTPRIO, POSIX_RLIMIT_STGPENDING

POSIX_RLIMIT_NOFILE

POSIX_RLIMIT_RSS

POSIX_RLIMIT_RTTIME

POSIX_RLIMIT_STACK

POSIX_RLIMIT_INFINITY

POSIX_RLIMIT_STGPENDING

Zlib

This is a module which basically read and write compressed files in the gzip format.

The newly added functions in Zlib in PHP 7 are:

ZLIB_SYNC_FLUSH

ZLIB_PARTIAL_FLUSH

ZLIB_NO_FLUSH

ZLIB_FULL_FLUSH

ZLIB_FINISH.

Conclusion

In this part, we have discussed new classes, interfaces and constants introduced in PHP7. In the next part, which will be the final part in the series, I will be discussing the changes in SAPI modules (interfaces with Web servers and command line) and the removed extensions.

For now you can now easily work around your PHP 7 on the Managed PHP Hosting of Cloudways, with the 1-click install. Set it up and start testing it on the most optimized cloud infrastructures.

If you like this article please share it. If you have any questions about classes, interfaces and constants in PHP 7, post a comment here.




You need to be a registered user or login to post a comment

Login Immediately with your account on:



Comments:

No comments were submitted yet.



  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog PHP 7 Migration Guide...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)