Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!

Archive for Wrzesień, 2017

SitePoint PHP Blog: Let’s Compare: RunCloud vs Forge vs ServerPilot

SitePoint PHP Blog: Let’s Compare: RunCloud vs Forge vs ServerPilot

On the SitePoint PHP blog there’s a new post that compares three deployment tools to help you manage your VPS servers: RunCloud vs Forge vs ServerPilot.

When your website or web application has outgrown your shared hosting account, it is time to move it to the cloud, or into a virtual private server (VPS). [...] However, I can recall when I wanted to move my website to Amazon Web Services a few years ago, and it took me days to deploy the server and get it ready with PHP, MySQL and Apache.

Fortunately, that is not the case today as we have the help of some cool tools and third party services. I took a look at three similar services – RunCloud, ServerPilot and Laravel Forge – and compared them to see which performs best.

The post then walks through each service showing how to set up an account and talking about the pros and cons. Screenshots are included showing the UI and the steps you’ll need to set up servers and providers. The post ends with a look at performance tests on the resulting VPSes including information like time of request completion, response time and successful/failed transactions. These results show a clear leader as far as performance results – Laravel Forge – but there are some reminders that performance is only part of what you should consider when selecting a service.

Source: http://www.phpdeveloper.org/news/25606

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

SitePoint PHP Blog: Let’s Compare: RunCloud vs Forge vs ServerPilot

SitePoint PHP Blog: Let’s Compare: RunCloud vs Forge vs ServerPilot

On the SitePoint PHP blog there’s a new post that compares three deployment tools to help you manage your VPS servers: RunCloud vs Forge vs ServerPilot.

When your website or web application has outgrown your shared hosting account, it is time to move it to the cloud, or into a virtual private server (VPS). [...] However, I can recall when I wanted to move my website to Amazon Web Services a few years ago, and it took me days to deploy the server and get it ready with PHP, MySQL and Apache.

Fortunately, that is not the case today as we have the help of some cool tools and third party services. I took a look at three similar services – RunCloud, ServerPilot and Laravel Forge – and compared them to see which performs best.

The post then walks through each service showing how to set up an account and talking about the pros and cons. Screenshots are included showing the UI and the steps you’ll need to set up servers and providers. The post ends with a look at performance tests on the resulting VPSes including information like time of request completion, response time and successful/failed transactions. These results show a clear leader as far as performance results – Laravel Forge – but there are some reminders that performance is only part of what you should consider when selecting a service.

Source: http://www.phpdeveloper.org/news/25606

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Jen Segers: Goodbye controllers, hello request handlers

Jen Segers: Goodbye controllers, hello request handlers

In a post to his site Jen Segers says "goodby to controllers" in favor of request handlers. Request handlers are a concept similar to the ideas in the ADR pattern but are defined a bit differently.

If you have worked on large applications before, you might have noticed that you end up with bloated controllers sooner or later. Even if you use repositories or service classes to extract logic from the controller, the amount of dependencies, methods and lines of code will grow over time.

Let me introduce you to request handlers. The concept is very simple, yet very unknown to a lot of PHP developers. A request handler is basically a controller, but limited to one single action.

He suggests using invokable classes to build out request handlers in your PHP code, making use if the magic __invoke method to make them callable. He gives a "hello world" kind of example and talks about how Laravel and Slim already implement this idea in their routing. He then looks at how these responders help you adhere to the Single Responsibility Principle (part of SOLID) and how they make the code easier to test and simpler to refactor.

Source: http://www.phpdeveloper.org/news/25605

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Jen Segers: Goodbye controllers, hello request handlers

Jen Segers: Goodbye controllers, hello request handlers

In a post to his site Jen Segers says "goodby to controllers" in favor of request handlers. Request handlers are a concept similar to the ideas in the ADR pattern but are defined a bit differently.

If you have worked on large applications before, you might have noticed that you end up with bloated controllers sooner or later. Even if you use repositories or service classes to extract logic from the controller, the amount of dependencies, methods and lines of code will grow over time.

Let me introduce you to request handlers. The concept is very simple, yet very unknown to a lot of PHP developers. A request handler is basically a controller, but limited to one single action.

He suggests using invokable classes to build out request handlers in your PHP code, making use if the magic __invoke method to make them callable. He gives a "hello world" kind of example and talks about how Laravel and Slim already implement this idea in their routing. He then looks at how these responders help you adhere to the Single Responsibility Principle (part of SOLID) and how they make the code easier to test and simpler to refactor.

Source: http://www.phpdeveloper.org/news/25605

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Jen Segers: Goodbye controllers, hello request handlers

Jen Segers: Goodbye controllers, hello request handlers

In a post to his site Jen Segers says "goodby to controllers" in favor of request handlers. Request handlers are a concept similar to the ideas in the ADR pattern but are defined a bit differently.

If you have worked on large applications before, you might have noticed that you end up with bloated controllers sooner or later. Even if you use repositories or service classes to extract logic from the controller, the amount of dependencies, methods and lines of code will grow over time.

Let me introduce you to request handlers. The concept is very simple, yet very unknown to a lot of PHP developers. A request handler is basically a controller, but limited to one single action.

He suggests using invokable classes to build out request handlers in your PHP code, making use if the magic __invoke method to make them callable. He gives a "hello world" kind of example and talks about how Laravel and Slim already implement this idea in their routing. He then looks at how these responders help you adhere to the Single Responsibility Principle (part of SOLID) and how they make the code easier to test and simpler to refactor.

Source: http://www.phpdeveloper.org/news/25605

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Laravel News: Measure Anything in Laravel with StatsD

Laravel News: Measure Anything in Laravel with StatsD

On the Laravel News site there’s a new tutorial posted showing you how to integrate your Laravel application with StatsD for statistics gathering. StatsD is a project from Etsy that runs as a Node.js platform and listens for incoming connections providing statistics to record to the system.

I want to show you some tools and techniques you can use to measure anything and everything that you want in your Laravel applications with StatsD. These ideas are simple and not new; yet, I believe that the simplicity and power are what makes StatsD great.

You can also take the ideas in this article and apply them to any programming language or stack. Instrumenting your code can have a huge payoff as your application scales and can help you gain deep insights.

The post starts off by talking about how integrating new features like this should be as painless as possible and some about what StatsD provides. It then talks about "instrumentation" of your code and how metrics can provide insight into what your code is doing and how well it does it. It shows you how to set up the Graphite/StatsD Docker container and how to install the league/statsd package to help make the connection to the server. The post wraps up with some examples of statistics you might want to measure and the code to increment/decrement values in both normal code and middleware (including controller execution time).

Source: http://www.phpdeveloper.org/news/25604

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Jeff Madsen: PhpStorm: Tasks & Contexts with Your Git Branches

Jeff Madsen: PhpStorm: Tasks & Contexts with Your Git Branches

On his Medium.com site Jeff Madsen shows you how to use contexts in the PhpStorm IDE to switch between environments or current work using a more streamlined process.

Switching context is a pain.

Not just because you need to mentally switch the complex web of ideas in your head. Think about all the physical files on different git branches you have to remember in order to answer a “quick question about task #123”. [...] PhpStorm has a lot of great context links and shortcuts to help you navigate among all these, but it is still a royal pain whenever you need to put one set of files aside and work in a different area of the codebase.

[...] When I finished something and pushed it up for review if there was even a small request to change a default or label I had to reopen the branch and track down the correct files where the work was done. How could I turn that all into a single, easy step?

Enter Contexts and Tasks!

He starts off by defining what a "context" is in the world of PhpStorm – a group of open files with a name attached – and how they can be created/saved inside the IDE. Next is the idea of "tasks" that help with performing operations and relating them to contexts and groupings of files. He then shows how to switch between tasks related to a certain feature and how to close it out when you’re done.

Source: http://www.phpdeveloper.org/news/25603

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Jeff Madsen: PhpStorm: Tasks & Contexts with Your Git Branches

Jeff Madsen: PhpStorm: Tasks & Contexts with Your Git Branches

On his Medium.com site Jeff Madsen shows you how to use contexts in the PhpStorm IDE to switch between environments or current work using a more streamlined process.

Switching context is a pain.

Not just because you need to mentally switch the complex web of ideas in your head. Think about all the physical files on different git branches you have to remember in order to answer a “quick question about task #123”. [...] PhpStorm has a lot of great context links and shortcuts to help you navigate among all these, but it is still a royal pain whenever you need to put one set of files aside and work in a different area of the codebase.

[...] When I finished something and pushed it up for review if there was even a small request to change a default or label I had to reopen the branch and track down the correct files where the work was done. How could I turn that all into a single, easy step?

Enter Contexts and Tasks!

He starts off by defining what a "context" is in the world of PhpStorm – a group of open files with a name attached – and how they can be created/saved inside the IDE. Next is the idea of "tasks" that help with performing operations and relating them to contexts and groupings of files. He then shows how to switch between tasks related to a certain feature and how to close it out when you’re done.

Source: http://www.phpdeveloper.org/news/25603

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Community News: Latest PECL Releases (09.26.2017)

Community News: Latest PECL Releases (09.26.2017)

Latest PECL Releases:

  • swoole 1.9.21
    - Added Atomiclong, support 64-bit signed long integer

    • Optimized the underlying GlobalMemory implementation, support the creation of an unlimited number of atoms, locks, tables
    • Prohibit serialization of Swoole module object
    • Fixed HttpClient download method fourth argument is invalid
    • Fixed FreeBSD platform compiler error report
    • Fixed sendfile on the MacOS platform there is a 5 second delay problem
    • Added Process::setTimeout
  • parle 0.6.4
    - Improve Parser::reduceId property handling
    - Fixed index range check in Parser::sigil()
    - Fixed Stack::top handling for empty stack
    - Improved Parser::errorInfo()
    - Fixed properties access in all classes exporting properties

  • igbinary 2.0.4
    * Fixes bug #129: Should not call __wakeup() on data which was created by Serializable::unserialize()
  • igbinary 2.0.3
    - Fixes bug #126: Fatal error: "igbinary_serialize_zval: zval has unknown type 0" (IS_UNDEF)
    Make this a warning instead of a fatal error (and serialize as null instead), since IS_UNDEF is a known type.
    Later releases will fix the root cause of the warning, and consistently omit array/object/other entries for IS_UNDEF.

  • igbinary 2.0.2
    - Compatible with PHP 5.2 – 7.1
    - Fixes crash in Memcached->setMulti (in php 7.0+) when the first level of array elements have references as values.
    Other extensions using igbinary shouldn’t be affected.

  • parle 0.6.3
    - Turned Stack method top into property
    - Internal refactoring

  • ibm_db2 2.0.0
    Fixed : signal 11 in db2_pconnect
    Fixed : Security flaw with using user and password for hashing in db2_pconnect.
    Fxied : Local scope bound values in a class are not used

  • pdo_sqlsrv 5.1.0preview
    [Added]
    - Added support for Always Encrypted with basic CRUD functionalities (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    – Support for Windows Certificate Store (use connection keyword ColumnEncryption)
    – Support for custom key store provider (use connection keywords ColumnEncryption, CEKeystoreProvider, CEKeystoreName, CEKeystoreEncryptKey)
    – Support for inserting into an encrypted column
    – Support for fetching from an encrypted column
    - Added support for MSODBC 17 preview
    - Added Driver option to set the ODBC driver, Added"Driver" option, valid values are ODBC Driver 13 for SQL Server,ODBC Driver 11 for SQL Server, and ODBC Driver 17 for SQL Server
    – If the user intends to use the new Always Encrypted features, we recommend you to specify explicitly the ‘Driver’ option to ‘ODBC Driver 17 for SQL Server’ in the connection string
    [Limitation]
    - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview)
    – ODBC binaries for macOS available upon request
    - MSODBC 17 preview msodbcsql.msi only works for Windows10
    - [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation)
    - when using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    - No support for inout / output params when using sql_variant type
    [Known Issues]
    - Connection pooling on Linux doesn’t work properly if the user uses the MSODBC17 preview
    - PDO::quote returns truncated string with garbage characters appended if the string contains a ASCII NUL (‘/0′) character
    - When pooling is enabled in Linux or MAC
    – unixODBC 2.3.4 or prior (Linux and MAC) might not return proper diagnostics information, such as error messages, warnings and informative messages
    – due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples (https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac)

  • sqlsrv 5.1.0preview
    [Added]
    - Added support for Always Encrypted with basic CRUD functionalities (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    – Support for Windows Certificate Store (use connection keyword ColumnEncryption)
    – Support for custom key store provider (use connection keywords ColumnEncryption, CEKeystoreProvider, CEKeystoreName, CEKeystoreEncryptKey)
    – Support for inserting into an encrypted column
    – Support for fetching from an encrypted column
    - Added support for MSODBC 17 preview
    - Added Driver option to set the ODBC driver, Added"Driver" option, valid values are ODBC Driver 13 for SQL Server,ODBC Driver 11 for SQL Server, and ODBC Driver 17 for SQL Server
    – If the user intends to use the new Always Encrypted features, we recommend you to specify explicitly the ‘Driver’ option to ‘ODBC Driver 17 for SQL Server’ in the connection string
    [Limitation]
    - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview)
    – ODBC binaries for macOS available upon request
    - MSODBC 17 preview msodbcsql.msi only works for Windows10
    - [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation)
    - when using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    - No support for inout / output params when using sql_variant type
    [Known Issues]
    - Connection pooling on Linux doesn’t work properly if the user uses the MSODBC17 preview
    - Binding decimal type when using Always Encrypted in the SQLSRV x64 driver returns an error during insertion when the input does not have any decimal places
    - When pooling is enabled in Linux or MAC
    – unixODBC 2.3.4 or prior (Linux and MAC) might not return proper diagnostics information, such as error messages, warnings and informative messages
    – due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples (https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac)

  • mongodb 1.3.0
    ** Bug
    * [PHPC-586] – Create regression tests for tailable cursor iteration
    * [PHPC-624] – WriteResult::getUpsertedIds() only supports ObjectIDs and integers
    * [PHPC-692] – Check for phongo_bson_to_zval_ex() failures in Server methods
    * [PHPC-712] – Driver should validate BSON documents before insert and update
    * [PHPC-875] – Allow compiling without SSL
    * [PHPC-895] – Require 16-byte data length for Binary UUID subtypes 0×03 and 0×04
    * [PHPC-914] – php mongodb connect ‘SCRAM Failure: invalid salt length of 0 in sasl step2′ exception
    * [PHPC-939] – BSON classes should not assign public properties after var_dump()
    * [PHPC-950] – Skip APM callbacks if subscriber HashTable is uninitialized
    * [PHPC-951] – CursorId is a signed 64-bit integer
    * [PHPC-964] – Ensure SASL output variables are always defined in config.m4
    * [PHPC-974] – Converting JSON to BSON to PHP introduces gaps in array indexes
    * [PHPC-981] – APM functions should reside in MongoDBDriverMonitoring namespace
    * [PHPC-982] – Include null byte in key length when accessing subscriber HashTable in PHP 5
    * [PHPC-983] – MongoDBBSONtoPHP() arg info is missing type map parameter
    * [PHPC-994] – Fix HAVE_SOCKLEN_T macro redefinition for Windows builds
    * [PHPC-1005] – Ensure array symtable converts to object proptable in PHP 7.2
    * [PHPC-1006] – Do not modify memory of Persistable::bsonSerialize() return value

    ** Epic
    * [PHPC-909] – Spring cleaning for 1.3.0

    ** New Feature
    * [PHPC-349] – Application Performance Monitoring (APM)
    * [PHPC-382] – Allow zval_to_bson() to return the ID irrespective of ID generation
    * [PHPC-471] – BulkWrite::insert() should always return the document’s ID
    * [PHPC-587] – CursorId should serialize to BSON as 64-bit integer
    * [PHPC-772] – Parse authMechanism options in URI options array
    * [PHPC-839] – Add option maxAwaitTimeMS on getMore commands
    * [PHPC-926] – Implement Extended JSON spec
    * [PHPC-976] – Create isDefault() method for read and write concerns
    * [PHPC-985] – Implement Timestamp::getIncrement() and getTimestamp() methods
    * [PHPC-988] – PHP 5.x segfault if TypeWrapper::createFromBSONType() throws exception

    ** Task
    * [PHPC-302] – Throw exceptions for unsupported BSON types
    * [PHPC-640] – Implement interfaces for userland BSON type classes
    * [PHPC-765] – Connection string spec compliance
    * [PHPC-892] – Upgrade libbson and libmongoc to 1.6.0
    * [PHPC-907] – Remove PHONGO_API macro for exported symbols
    * [PHPC-908] – Do not declare MINIT functions for each driver class
    * [PHPC-910] – Reorganize BSON encoding and decoding sources
    * [PHPC-911] – Prefix symbols and use static decls whenever possible
    * [PHPC-915] – Document precedence of authMechanismProperties URI option over named GSSAPI options
    * [PHPC-928] – Sync release files in PECL package generation script
    * [PHPC-929] – Skip BSON corpus test for embedded null in code string
    * [PHPC-932] – Remove reference to Manager on Cursor, Server, and WriteResult objects
    * [PHPC-953] – Do not parse undocumented "database" key in URI options array
    * [PHPC-957] – Use libmongoc constants for applicable URI options
    * [PHPC-959] – Do not check for null return from mongoc_collection_find_with_opts()
    * [PHPC-977] – Upgrade libbson and libmongoc to 1.7.0
    * [PHPC-992] – Rename to[Canonical|Relaxed]JSON() to to[Canonical|Relaxed]ExtendedJSON()
    * [PHPC-996] – Remove support for PHP 5.4
    * [PHPC-997] – Update date/time handling code due to changes in timelib
    * [PHPC-1004] – Rename ObjectID to ObjectId
    * [PHPC-1007] – Upgrade libbson and libmongoc to 1.8.0
    * [PHPC-1008] – Use SETUP_OPENSSL() in config.w32 if available

    ** Improvement
    * [PHPC-579] – Throw exception for invalid BulkWrite::update() newObj argument
    * [PHPC-628] – executeBulkWrite() should throw InvalidArgumentException for empty BulkWrite
    * [PHPC-846] – Throw if maxStalenessSeconds URI option is out of range
    * [PHPC-887] – Throw exceptions for unexpected types in URI options array
    * [PHPC-904] – ReadPreference constructor should accept strings
    * [PHPC-930] – Do not throw exceptions for critical and error levels in libmongoc log callback
    * [PHPC-935] – Validate filter and options in Query constructor
    * [PHPC-937] – Cursor::setTypeMap() and toPHP() should return early if type map is invalid
    * [PHPC-941] – Introduce API for converting BSON to canonical and relaxed extended JSON
    * [PHPC-942] – Use mongoc_uri_new_with_error() to improve URI error reporting
    * [PHPC-944] – MONGOC_ERROR_COMMAND_INVALID_ARG should yield InvalidArgumentException
    * [PHPC-1001] – Report field name for invalid UTF-8 and unsupported zval types during BSON encoding

  • mongodb 1.2.11
    ** Bug
    * [PHPC-875] – Allow compiling without SSL

    ** Task
    * [PHPC-1008] – Use SETUP_OPENSSL() in config.w32 if available

  • parle 0.6.2
    - Fixed reflection properties allocation (Remi Collet)
    - Removed offset from the Token class
    - Introduced Lexer properties for marker and cursor positions
    - Max token id is set to UINT16_MAX to save memory. This might be changed in the future

Source: http://www.phpdeveloper.org/news/25602

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>

Community News: Latest PECL Releases (09.26.2017)

Community News: Latest PECL Releases (09.26.2017)

Latest PECL Releases:

  • swoole 1.9.21
    - Added Atomiclong, support 64-bit signed long integer

    • Optimized the underlying GlobalMemory implementation, support the creation of an unlimited number of atoms, locks, tables
    • Prohibit serialization of Swoole module object
    • Fixed HttpClient download method fourth argument is invalid
    • Fixed FreeBSD platform compiler error report
    • Fixed sendfile on the MacOS platform there is a 5 second delay problem
    • Added Process::setTimeout
  • parle 0.6.4
    - Improve Parser::reduceId property handling
    - Fixed index range check in Parser::sigil()
    - Fixed Stack::top handling for empty stack
    - Improved Parser::errorInfo()
    - Fixed properties access in all classes exporting properties

  • igbinary 2.0.4
    * Fixes bug #129: Should not call __wakeup() on data which was created by Serializable::unserialize()
  • igbinary 2.0.3
    - Fixes bug #126: Fatal error: "igbinary_serialize_zval: zval has unknown type 0" (IS_UNDEF)
    Make this a warning instead of a fatal error (and serialize as null instead), since IS_UNDEF is a known type.
    Later releases will fix the root cause of the warning, and consistently omit array/object/other entries for IS_UNDEF.

  • igbinary 2.0.2
    - Compatible with PHP 5.2 – 7.1
    - Fixes crash in Memcached->setMulti (in php 7.0+) when the first level of array elements have references as values.
    Other extensions using igbinary shouldn’t be affected.

  • parle 0.6.3
    - Turned Stack method top into property
    - Internal refactoring

  • ibm_db2 2.0.0
    Fixed : signal 11 in db2_pconnect
    Fixed : Security flaw with using user and password for hashing in db2_pconnect.
    Fxied : Local scope bound values in a class are not used

  • pdo_sqlsrv 5.1.0preview
    [Added]
    - Added support for Always Encrypted with basic CRUD functionalities (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    – Support for Windows Certificate Store (use connection keyword ColumnEncryption)
    – Support for custom key store provider (use connection keywords ColumnEncryption, CEKeystoreProvider, CEKeystoreName, CEKeystoreEncryptKey)
    – Support for inserting into an encrypted column
    – Support for fetching from an encrypted column
    - Added support for MSODBC 17 preview
    - Added Driver option to set the ODBC driver, Added"Driver" option, valid values are ODBC Driver 13 for SQL Server,ODBC Driver 11 for SQL Server, and ODBC Driver 17 for SQL Server
    – If the user intends to use the new Always Encrypted features, we recommend you to specify explicitly the ‘Driver’ option to ‘ODBC Driver 17 for SQL Server’ in the connection string
    [Limitation]
    - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview)
    – ODBC binaries for macOS available upon request
    - MSODBC 17 preview msodbcsql.msi only works for Windows10
    - [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation)
    - when using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    - No support for inout / output params when using sql_variant type
    [Known Issues]
    - Connection pooling on Linux doesn’t work properly if the user uses the MSODBC17 preview
    - PDO::quote returns truncated string with garbage characters appended if the string contains a ASCII NUL (‘/0′) character
    - When pooling is enabled in Linux or MAC
    – unixODBC 2.3.4 or prior (Linux and MAC) might not return proper diagnostics information, such as error messages, warnings and informative messages
    – due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples (https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac)

  • sqlsrv 5.1.0preview
    [Added]
    - Added support for Always Encrypted with basic CRUD functionalities (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    – Support for Windows Certificate Store (use connection keyword ColumnEncryption)
    – Support for custom key store provider (use connection keywords ColumnEncryption, CEKeystoreProvider, CEKeystoreName, CEKeystoreEncryptKey)
    – Support for inserting into an encrypted column
    – Support for fetching from an encrypted column
    - Added support for MSODBC 17 preview
    - Added Driver option to set the ODBC driver, Added"Driver" option, valid values are ODBC Driver 13 for SQL Server,ODBC Driver 11 for SQL Server, and ODBC Driver 17 for SQL Server
    – If the user intends to use the new Always Encrypted features, we recommend you to specify explicitly the ‘Driver’ option to ‘ODBC Driver 17 for SQL Server’ in the connection string
    [Limitation]
    - Always Encrypted functionalities are only supported using [MSODBC 17 preview](https://github.com/Microsoft/msphpsql/tree/dev/ODBC%2017%20binaries%20preview)
    – ODBC binaries for macOS available upon request
    - MSODBC 17 preview msodbcsql.msi only works for Windows10
    - [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation)
    - when using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
    - No support for inout / output params when using sql_variant type
    [Known Issues]
    - Connection pooling on Linux doesn’t work properly if the user uses the MSODBC17 preview
    - Binding decimal type when using Always Encrypted in the SQLSRV x64 driver returns an error during insertion when the input does not have any decimal places
    - When pooling is enabled in Linux or MAC
    – unixODBC 2.3.4 or prior (Linux and MAC) might not return proper diagnostics information, such as error messages, warnings and informative messages
    – due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples (https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac)

  • mongodb 1.3.0
    ** Bug
    * [PHPC-586] – Create regression tests for tailable cursor iteration
    * [PHPC-624] – WriteResult::getUpsertedIds() only supports ObjectIDs and integers
    * [PHPC-692] – Check for phongo_bson_to_zval_ex() failures in Server methods
    * [PHPC-712] – Driver should validate BSON documents before insert and update
    * [PHPC-875] – Allow compiling without SSL
    * [PHPC-895] – Require 16-byte data length for Binary UUID subtypes 0×03 and 0×04
    * [PHPC-914] – php mongodb connect ‘SCRAM Failure: invalid salt length of 0 in sasl step2′ exception
    * [PHPC-939] – BSON classes should not assign public properties after var_dump()
    * [PHPC-950] – Skip APM callbacks if subscriber HashTable is uninitialized
    * [PHPC-951] – CursorId is a signed 64-bit integer
    * [PHPC-964] – Ensure SASL output variables are always defined in config.m4
    * [PHPC-974] – Converting JSON to BSON to PHP introduces gaps in array indexes
    * [PHPC-981] – APM functions should reside in MongoDBDriverMonitoring namespace
    * [PHPC-982] – Include null byte in key length when accessing subscriber HashTable in PHP 5
    * [PHPC-983] – MongoDBBSONtoPHP() arg info is missing type map parameter
    * [PHPC-994] – Fix HAVE_SOCKLEN_T macro redefinition for Windows builds
    * [PHPC-1005] – Ensure array symtable converts to object proptable in PHP 7.2
    * [PHPC-1006] – Do not modify memory of Persistable::bsonSerialize() return value

    ** Epic
    * [PHPC-909] – Spring cleaning for 1.3.0

    ** New Feature
    * [PHPC-349] – Application Performance Monitoring (APM)
    * [PHPC-382] – Allow zval_to_bson() to return the ID irrespective of ID generation
    * [PHPC-471] – BulkWrite::insert() should always return the document’s ID
    * [PHPC-587] – CursorId should serialize to BSON as 64-bit integer
    * [PHPC-772] – Parse authMechanism options in URI options array
    * [PHPC-839] – Add option maxAwaitTimeMS on getMore commands
    * [PHPC-926] – Implement Extended JSON spec
    * [PHPC-976] – Create isDefault() method for read and write concerns
    * [PHPC-985] – Implement Timestamp::getIncrement() and getTimestamp() methods
    * [PHPC-988] – PHP 5.x segfault if TypeWrapper::createFromBSONType() throws exception

    ** Task
    * [PHPC-302] – Throw exceptions for unsupported BSON types
    * [PHPC-640] – Implement interfaces for userland BSON type classes
    * [PHPC-765] – Connection string spec compliance
    * [PHPC-892] – Upgrade libbson and libmongoc to 1.6.0
    * [PHPC-907] – Remove PHONGO_API macro for exported symbols
    * [PHPC-908] – Do not declare MINIT functions for each driver class
    * [PHPC-910] – Reorganize BSON encoding and decoding sources
    * [PHPC-911] – Prefix symbols and use static decls whenever possible
    * [PHPC-915] – Document precedence of authMechanismProperties URI option over named GSSAPI options
    * [PHPC-928] – Sync release files in PECL package generation script
    * [PHPC-929] – Skip BSON corpus test for embedded null in code string
    * [PHPC-932] – Remove reference to Manager on Cursor, Server, and WriteResult objects
    * [PHPC-953] – Do not parse undocumented "database" key in URI options array
    * [PHPC-957] – Use libmongoc constants for applicable URI options
    * [PHPC-959] – Do not check for null return from mongoc_collection_find_with_opts()
    * [PHPC-977] – Upgrade libbson and libmongoc to 1.7.0
    * [PHPC-992] – Rename to[Canonical|Relaxed]JSON() to to[Canonical|Relaxed]ExtendedJSON()
    * [PHPC-996] – Remove support for PHP 5.4
    * [PHPC-997] – Update date/time handling code due to changes in timelib
    * [PHPC-1004] – Rename ObjectID to ObjectId
    * [PHPC-1007] – Upgrade libbson and libmongoc to 1.8.0
    * [PHPC-1008] – Use SETUP_OPENSSL() in config.w32 if available

    ** Improvement
    * [PHPC-579] – Throw exception for invalid BulkWrite::update() newObj argument
    * [PHPC-628] – executeBulkWrite() should throw InvalidArgumentException for empty BulkWrite
    * [PHPC-846] – Throw if maxStalenessSeconds URI option is out of range
    * [PHPC-887] – Throw exceptions for unexpected types in URI options array
    * [PHPC-904] – ReadPreference constructor should accept strings
    * [PHPC-930] – Do not throw exceptions for critical and error levels in libmongoc log callback
    * [PHPC-935] – Validate filter and options in Query constructor
    * [PHPC-937] – Cursor::setTypeMap() and toPHP() should return early if type map is invalid
    * [PHPC-941] – Introduce API for converting BSON to canonical and relaxed extended JSON
    * [PHPC-942] – Use mongoc_uri_new_with_error() to improve URI error reporting
    * [PHPC-944] – MONGOC_ERROR_COMMAND_INVALID_ARG should yield InvalidArgumentException
    * [PHPC-1001] – Report field name for invalid UTF-8 and unsupported zval types during BSON encoding

  • mongodb 1.2.11
    ** Bug
    * [PHPC-875] – Allow compiling without SSL

    ** Task
    * [PHPC-1008] – Use SETUP_OPENSSL() in config.w32 if available

  • parle 0.6.2
    - Fixed reflection properties allocation (Remi Collet)
    - Removed offset from the Token class
    - Introduced Lexer properties for marker and cursor positions
    - Max token id is set to UINT16_MAX to save memory. This might be changed in the future

Source: http://www.phpdeveloper.org/news/25602

<!–
var d = new Date();
r = escape(d.getTime()*Math.random());
document.writeln('’);
//–>