Derick Rethans: Xdebug Update: November 2019

  Xdebug Update: November 2019 
   
     London, UK 
    Tuesday, December 10th 2019, 09:17 GMT 
   
  Another month, another monthly update where I explain what happened with Xdebug development in this past month. It will be published on the first Tuesday after t...

Community News: Latest PECL Releases (12.10.2019)

Latest PECL Releases:

  • igbinary 3.1.0b3
    * Skip over object properties that are uninitialized or unset when serializing, instead of serializing them as null. This is done to avoid Errors when unserializing their values for php 7.4 typed properties.

  • ev 1.0.8
    - Fixed build warnings with PHP 7.4.0-alpha1: 'incompatible pointer type' warnings occurred in assignments to the write property handlers (thanks to Remi Collet). - Re-fixed the Windows build errors related to errno in a way that the libev sources are left pristine. (The root of the issue is actually rooted in the PHP code where the errno macro is re-defined.)
  • xdebug 2.9.0
    Mon, Dec 9, 2019 - xdebug 2.9.0
    • Improvements:

      • Fixed issue #1723: Class/function pre-analysis for code coverage speed improvements
    • Removed features:

      • Fixed issue #1301: Removed aggregated profiler feature
      • Fixed issue #1720: Remove superfluous xdebug.remote_handler setting

    = Fixed bugs:

    • Fixex issue #1722: Build warning issues on FreeBSD
    • Fixed issue #1724: Missing property types and uninitialised values in variable dumping routines
  • skywalking 3.2.4
    Support php7.4
  • igbinary 3.1.0b2
    * Fix crashes related to unserializing instances of classes with php 7.4 typed properties.
  • igbinary 3.1.0b1
    * Support php 7.4's __serialize/__unserialize the same way serialize()/unserialize() does. This deliberately only supports __serialize/__unserialize in php 7.4, to making switching to/from serialize()/unserialize() as straightforward as possible.
  • rdkafka 4.0.1
    BREAKING CHANGE: Since version 4.0, the client no longer polls for network events at shutdown (during object destructor). This behaviour didn't give enough control to the user in case of server issue, and could cause the script to hang while terminating.

    Starting from 4.0, programs MUST call flush() before shutting down, otherwise some messages and callbacks may be lost.

    Features

    • Added RdKafkaConsumerTopic::consumeCallback() (#310, @nick-zh)

    Enhancements

    • Run integration tests in CI (#223, @Steveb-p)
    • Improved README (#295 #297 #298, #307 @Steveb-p @sndsgd @nick-zh)
    • Fix windows test cases (#296, @cmb69)
    • Add testsuite in pecl archive (#291, @remicollet)
    • Add editor config (#308, @Steveb-p)

    Bugfixes

    • Fix build (#290, @nick-zh)
    • Fix segfault during module shutdown (#293, @arnaud-lb @nick-zh)
    • Fix RdKafkaTopic visibility in PHP 7.4 (#316, @nick-zh)
    • Fix headers memory management in producev (#318 , @nick-zh)
    • Fix partition number in error (#321, @nick-zh)
  • rdkafka 3.1.3
    * Fix segfault during module shutdown (#293, @arnaud-lb @nick-zh) * Fix RdKafkaTopic visibility in PHP 7.4 (#316, @nick-zh)
  • ev 1.0.7
    - Updated libev - Fixed Windows build by applying a patch suggested by Christoph M. Becker.
  • gRPC 1.26.0RC2
    - Fix php5.5 build
  • xhprof 2.1.2
    -- Fixed build with PHP-7.4 #32
  • datadog_trace 0.35.0
    ### Added
    • Compile-time metric #648
    • Health metrics: track segmentation faults #621

    Changed

    • Migrate Mysqli integration to sandboxed api #635
    • Migrate Zend framework integration to sandboxed api #655
    • Migrate Symfony framework integration to sandboxed api #667
    • Migrate Mongo library integration to sandboxed api #669
    • Refactor opcode hooks #659

    Fixed

    • CodeIgniter namespace definition #650
    • Error reporting in case of fatal errors #671
    • Mutation of Memcached result code #663
  • gRPC 1.26.0RC1
    - gRPC Core 1.26.0 update - #20991: Added php.ini option to set custom grpc log location - #20987: Performance improvement to Call::startBatch() - #20903: Init ssl roots cert only once
  • mongodb 1.6.1
    ** Bug * [PHPC-1503] - Fix MONGOC_CC assignment in config.w32 for PHP 7.4

    ** Task

    • [PHPC-1504] - Add PHP 7.4 to AppVeyor build matrix
    • [PHPC-1505] - Update to libmongoc 1.15.2
  • swoole 4.4.13RC1
    New API --- + Built-in Connection Pool ([examples](https://github.com/swoole/library/tree/master/examples)) ([doc](https://wiki.swoole.com/wiki/page/p-library.html)) (@twose)

    Enhancement

    • Support websocket compression on CoroutineHttpServer (#2943) (@twose)
    • Support CURLOPT_PUT, CURLOPT_INFILE, CURLOPT_INFILESIZE (#2954) (@twose)
    • Add error info for bind error (@LeiZhang-Hunter) (@twose) (#2972)
    • Update error info if socket call failed (it will not warn anymore if not necessary) (1e9b8cbb) (@twose)
    • Make library submodule (@twose)

    Fixed

    • Fixed gdbinit in docker (missing symbol) (d46dc2d7 (@twose)
    • Fixed compression in POST request (#2947) (@twose)
    • Fixed compatibility of Websocket->push method (ac7dbcbc) (@twose)
    • Fixed $output result inconsistency (Yurunsoft) (#2955)
    • Fixed Coroutine::fread (#2958) (@matyhtf)
    • Fixed CoroutineServer can not exit normally #2837 (#2962) (@twose)
    • Fixed memory leak in HTTP2Server (#2964) (@twose)
    • Fixed unsafe_event (#2970) (@matyhtf)
    • Fixed illegal call after server start (#2977) (@twose)
    • Fixed WebSocketFrame can not enable mask (#2982) (#2983) (@twose)
    • Fixed memory leak of Process callback (898894a7) (@twose)
    • Fixed case where minfd is never updated (#2985)
    • Fixed HTTP2 module is always enable (3925e212) (@twose)
    • Fixed HTTP2 context double free (#2987) (f4cdff1b) (@twose)
    • Fixed string comparison (#2988) (97c6c425) (9e5eae63) (@twose)
    • Fixed HTTP2 pipeline (#2993) (@twose)
    • Fixed coroutine context has been destroyed (#2991) (@twose)

    Kernel

    • Refactor swoole_(get|set)_object to the way of extending zend_object (more stable and faster) (#2966) (@twose)
    • Support Github Actions (@twose) (@matyhtf)
  • memcached 3.1.5
    PHP 7.0 - 7.1 - 7.2 - 7.3 - 7.4 release of memcached extension. Note that support for libmemcached 0.x series has been discontinued and the oldest actively tested version is 1.0.8. It is highly recommended to use version 1.0.18 of libmemcached.

    Fixes

    • Fix build with PHP 7.4 release due to ulong typedef removal (#445)
  • sqlsrv 5.7.1preview
    [Added] - Support for PHP 7.4 - Support for Red Hat 8 and macOS Catalina (10.15) - Feature Request [#1018](https://github.com/microsoft/msphpsql/issues/1018) - support for [PHP extended string types](https://github.com/microsoft/msphpsql/wiki/Features#natlTypes) - Pull Request [#1043](https://github.com/microsoft/msphpsql/pull/1043) - [Always Encrypted with secure enclaves](https://github.com/microsoft/msphpsql/wiki/Features#alwaysencryptedV2), which requires [MS ODBC Driver 17.4+](https://docs.microsoft.com/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15) and [SQL Server 2019](https://www.microsoft.com/sql-server/sql-server-2019) [Removed] - Dropped support for [PHP 7.1](https://www.php.net/supported-versions.php) [Fixed] - Issue [#1027](https://github.com/microsoft/msphpsql/issues/1027) - Fixed how drivers handle query timeout settings - Pull Request [#1049](https://github.com/microsoft/msphpsql/pull/1049) - performance improvement for fetching from tables with many columns - cached the derived php types with column metadata to streamline data retrieval [Limitations] - No support for inout / output params when using sql_variant type - No support for inout / output params when formatting decimal values - In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. Attempting to set the locale after connecting will not work - Always Encrypted requires [MS ODBC Driver 17+](https://docs.microsoft.com/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server) - Only Windows Certificate Store and Azure Key Vault are supported. Custom Keystores are not yet supported - Issue [#716](https://github.com/Microsoft/msphpsql/issues/716) - With Always Encrypted enabled, named parameters in subqueries are not supported - Issue [#1050](https://github.com/microsoft/msphpsql/issues/1050) - With Always Encrypted enabled, insertion requires the column list for any tables with identity columns - [Always Encrypted limitations](https://docs.microsoft.com/sql/connect/php/using-always-encrypted-php-drivers#limitations-of-the-php-drivers-when-using-always-encrypted) [Known Issues] - Data Classification metadata retrieval requires ODBC Driver 17.4.2.1+ and [SQL Server 2019](https://www.microsoft.com/sql-server/sql-server-2019) - Connection pooling on Linux or macOS is not recommended with [unixODBC](http://www.unixodbc.org/) < 2.3.7 - When pooling is enabled in Linux or macOS - unixODBC <= 2.3.4 (Linux and macOS) might not return proper diagnostic 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 [here](https://github.com/Microsoft/msphpsql/wiki/Features#pooling)
  • pdo_sqlsrv 5.7.1preview
    [Added] - Support for PHP 7.4 - Support for Red Hat 8 and macOS Catalina (10.15) - Feature Request [#1018](https://github.com/microsoft/msphpsql/issues/1018) - support for [PHP extended string types](https://github.com/microsoft/msphpsql/wiki/Features#natlTypes) - Pull Request [#1043](https://github.com/microsoft/msphpsql/pull/1043) - [Always Encrypted with secure enclaves](https://github.com/microsoft/msphpsql/wiki/Features#alwaysencryptedV2), which requires [MS ODBC Driver 17.4+](https://docs.microsoft.com/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15) and [SQL Server 2019](https://www.microsoft.com/sql-server/sql-server-2019) [Removed] - Dropped support for [PHP 7.1](https://www.php.net/supported-versions.php) [Fixed] - Issue [#1027](https://github.com/microsoft/msphpsql/issues/1027) - Fixed how drivers handle query timeout settings - Pull Request [#1049](https://github.com/microsoft/msphpsql/pull/1049) - performance improvement for fetching from tables with many columns - cached the derived php types with column metadata to streamline data retrieval [Limitations] - No support for inout / output params when using sql_variant type - No support for inout / output params when formatting decimal values - In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. Attempting to set the locale after connecting will not work - Always Encrypted requires [MS ODBC Driver 17+](https://docs.microsoft.com/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server) - Only Windows Certificate Store and Azure Key Vault are supported. Custom Keystores are not yet supported - Issue [#716](https://github.com/Microsoft/msphpsql/issues/716) - With Always Encrypted enabled, named parameters in subqueries are not supported - Issue [#1050](https://github.com/microsoft/msphpsql/issues/1050) - With Always Encrypted enabled, insertion requires the column list for any tables with identity columns - [Always Encrypted limitations](https://docs.microsoft.com/sql/connect/php/using-always-encrypted-php-drivers#limitations-of-the-php-drivers-when-using-always-encrypted) [Known Issues] - Data Classification metadata retrieval requires ODBC Driver 17.4.2.1+ and [SQL Server 2019](https://www.microsoft.com/sql-server/sql-server-2019) - Connection pooling on Linux or macOS is not recommended with [unixODBC](http://www.unixodbc.org/) < 2.3.7 - When pooling is enabled in Linux or macOS - unixODBC <= 2.3.4 (Linux and macOS) might not return proper diagnostic 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 [here](https://github.com/Microsoft/msphpsql/wiki/Features#pooling)

Zipek PHP ZipArchive Unzip and Zip files

Package:
Zipek PHP ZipArchive Unzip and Zip files
Summary:
Compress or decompress zip files using ZipArchive
Groups:
Compression, Files and Folders, PHP 5
Author:
Ijon Tichy
Description:
This class can compress or decompress ZIP files using ZipArchive...

Read more at https://www.phpclasses.org/package/11461-PHP-Compress-or-decompress-zip-files-using-ZipArchive.html#2019-12-10-05:57:52

Why You Shouldn’t Ignore Smaller Web Design Projects

By and large, web designers are very passionate about their job. That stands out in contrast to most other industries. But when it comes to the bottom line, web design is just like other businesses. The main point is to gain clients and make a decent living.

As such, there is a lot of talk about booking big clients with budgets to match. Yet, that’s not always realistic – especially for freelancer designers who are just starting to make their way. Even seasoned pros may not have the desire or capacity to take on larger projects.

Still, going for the biggest fish seems to be the prevailing advice. So, does that mean smaller projects aren’t worth anything? Absolutely not. There are still important things to be gained. Here are a few reasons why you may not want to toss those little fish aside.

Learn to Build Client Relationships

Among the biggest challenges any business owner must face is in learning how to deal with people. I’d say it’s nearly as important as being a talented designer and developer.

Just as no two projects are the same, you’ll find that no two clients are, either. This means that you will interact with all kinds of different personalities over the course of your career.

Soon after I launched my business, I took on all manner of small projects – and met a few characters along the way. And, even though I didn’t see it that way at the time, it also presented a great opportunity.

You see, I didn’t make a whole lot of money. But I learned some important lessons about how to communicate with my clients. I figured out how to explain things in more user-friendly terms, how to keep them updated on work in progress. I also gained valuable insight into what their expectations were and how to take/respond to criticism.

It was a bumpy ride, for sure. There was a lot of stress and worry. Sometimes I could have handled things better. But the experience itself was priceless. Learning to build working relationships can be a key to both personal and professional growth.

Two people sitting at a desk.

A Chance to Sharpen Skills

There are plenty of places where web designers can learn new skills. But to truly put those skills into practice, you need to build something. Small projects can serve as a great proving ground.

For one, the expectation level should be equal to a client’s budget (though it’s important for you to explain this to them). A low-end eCommerce project, then, should mean fewer features and customizations.

This allows you to start small and build a foundational understanding of the type of site you’re working on. It can also serve as a bit of a playground for experimentation.

Because you’re on a shoestring budget, you probably won’t have access to some of the fancier scripts or plugins. The result is that you may have to dig into code a little more to get things done. It’s a wonderful method for figuring out how things work.

Person pointing at laptop computer screen.

Find Yourself

The more projects you have under your belt, the more you can learn about yourself. What kind of projects do you like? What type of workflow works for you?

These are valuable lessons to learn before you move on to bigger things. Because, until you understand your niche within the industry, it can be difficult to set yourself up for success.

For instance, it’s probably not a good idea to take on a massive project without having any idea of how you’re going to approach it. Without knowing which tools to use or even whether or not you’ll be comfortable with the work involved, you’re opening up a dangerous can of worms. You could well be placing yourself in a bad situation.

While smaller projects still need to be taken seriously, you can use them as a sort of guide. Inevitably, you’ll find that you like some aspects more than others. Perhaps you’ll realize that you are really into SEO, while learning that membership-based sites aren’t your cup of tea.

Whatever your preferences, the goal is to find out where you fit in. That takes time and often requires working on a variety of different projects. This is where you can use smaller gigs as a way to discover who you are.

Person looking out of a window.

Something More Than Money

It’s unlikely that you’ll get rich relying on small web design projects. That’s why many designers aim higher over the long term. But that doesn’t mean they lack value. Quite the opposite.

Building websites at the lower end of the spectrum is a great way to develop you brand, become better at your job and find your comfort zone. And while you don’t have to stay in this realm forever, you should make the most of it while you are there. It will help you prepare for what lies ahead.

The post Why You Shouldn’t Ignore Smaller Web Design Projects appeared first on Speckyboy Design Magazine.

Laravel News: 25 Years of PHP with Rasmus Lerdorf

                            The keynote speaker at this year’s PHP Barcelona conference was Rasmus Lerdorf the creator of PHP and he gave an excellent talk about the history of PHP, PHP 7.4 &amp;amp; 8, career advice, motivation, burn-out and focusing on things that really matter. 

...

Derick Rethans: Crafty Code Coverage

  Crafty Code Coverage 
   
     London, UK 
    Monday, December 9th 2019, 13:30 GMT 
   
  Xdebug's code coverage functionality has had dead code analysis for years. It is used to be able to mark lines of as having executable code on it, as well as lines which c...

Add Scroll Effects & Utilities to Your Website with These CSS & JS Snippets

Scrolling is among the most basic tasks we ask of users. And, judging from the amount of scrolling on websites and apps these days – we’re asking a lot.

Adding scroll-based effects can be a great way to enhance user experience. That is, so long as they don’t interfere with the ability to navigate through long stretches of content. If anything, effects should make things easier and add a bit of flair to the mix.

Here is a collection of scrolling effects and utilities that will wow your visitors and (hopefully) stay out of their way.

Section by Section

Modern webpages are often broken down into multiple content sections – each with its own distinct elements. This handy snippet adds a button (available in a variety of styles) to the bottom of the screen that allows users to click and scroll to the next section down. It uses CSS IDs coupled with jQuery to make the navigation work.

See the Pen
demo:CSS scroll down button
by Naoya

All Indications Say You’re Scrolling

Scroll indicators have become very popular on content-heavy websites. They communicate how far a user is into a story in an easy-to-digest method. Bonus that this solution is CSS-only.

See the Pen
CSS only scroll indicator
by Mike (@MadeByMike)

You Can Scroll If You Want To

Okay, this snippet isn’t necessarily an effect on its own. But it does serve a purpose. So often, designers utilize full-screen background images and other elements that may make scrolling ambiguous to the user. With that, small items like this animated scroll icon let users know that yes, there is more content down below. It’s not right for every situation, but there are times when it makes sense.

See the Pen
CSS Site Scroll Micro Animation
by Ryan Mulligan

The Incredible Shrinking Header

Sticky headers like this one have become a staple over the years. Why? They can add a ton of user convenience. The ability to navigate to other areas of a site without having to scroll up to the top of the page just makes life easier. As per usual, this example shrinks into a more compact element as you scroll down the page.

See the Pen
Scroll Header
by Blake Bowen

Slide to the Right

Here’s another take on the sticky header. This time, it’s fine-tuned for a one-page site. The top navigation automatically highlights the current content section and allows users to quickly switch between them.

See the Pen
Sticky Slider Navigation (Responsive)
by Ettrics

Flying Colors

Let’s take a look at another snippet that would be a great fit for one-page sites or a long page with multiple content sections. It uses CSS and a little bit of jQuery to change the background color as you scroll down (and yes, it works in reverse too). You might also want to check out a script that does the same thing, but with gradients.

See the Pen
Changing background-color while scrolling version 2
by JP Nothard

Turning Vertical into Horizontal

Have you ever wanted your website to scroll horizontally instead of vertically? You can do that without any fancy scripts, of course. But what if you didn’t want a horizontal scroll bar? In that case, you’d need something like this example. It utilizes a script called jInvertScroll, which turns your site into a side-scroller, complete with parallax effects.

See the Pen
Side Scrolling from jInvertScroll
by SitePoint

Animate on Scroll

Among the bigger trends these days is animating content as it comes into the viewport. When tastefully done, it can bring attention to each section. But go too far and it becomes more like an online circus act. If you decide to take the plunge, consider this snippet. It’s powered by the AOS (animate on scroll) library.

See the Pen
AOS – animations
by Snik

Scroll On, Web User

Back in the day, the prevailing thought was to avoid scrolling at all costs. Now, social media and smartphones have trained us to cover long expanses with our thumbs (and cursors). So, we might as well make it both fun and useful.

That’s what the snippets above aim to do. They cover a variety of use cases and, for the most part, steer clear of being obtrusive. It’s what building a solid UX is all about.

Looking for more ideas? Take a look at our CodePen collection for additional scroll snippets!

The post Add Scroll Effects & Utilities to Your Website with These CSS & JS Snippets appeared first on Speckyboy Design Magazine.

Powered by Gewgley