Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Matt Trask:
Looking at Ramsey UUID
Aug 24, 2016 @ 09:16:56

Matt Trask has put together a new post spotlighting a handy library that's widely used across the PHP ecosystem for generating UUIDs: ramsey/uuid.

Welcome to the first installment in my 2113918230981 part series, "Better know a Package!". Tonight's package: the famous/infamous Uuid package that that taught us all what Ramsey is in Scottish, Rhumsaa. Created to give PHP a library to generate Universal Unique Identifiers, this library has been a stallwort in the community. Ben Ramsey created it first under the Rhumsaa namesapce before moving it to the Ramsey namespace, saving us all from learning more Scottish then we needed to ever learn.

[...] A UUID, or Universally Unique Identifier, will generate a 128 bite unique key in different series based on the version you asked for. RFC-4122 dictates how Uuids should be generated, and recommends 4 types.

Matt then goes on to describe each of the different UUID types and provides some code examples as illustration:

  • Version 1: Time and MAC addressed based Uuid
  • Version 2: DCE-based
  • Version 3: UUIDs based on a namespace and then it is MD5 hashed
  • Version 4: Random generation (based on the output of random_bytes

He also includes examples of the UUIDs output by each method (not much difference there as the structure of the resulting UUID is all the same).

tagged: uuid ramsey library introduction types namespace random mac time tutorial

Link: http://matthewtrask.net/blog/Looking-At-Ramsey-Uuid/

Ben Ramsey:
Introducing Ramsey/UUID
Apr 25, 2016 @ 10:52:14

In a new post to his site Ben Ramsey finally gets around to posting about a library of his that's not only already widely used but has already been around for a few years - his ramsey/uuid library for generating UUIDs.

It seems quite absurd for me to introduce ramsey/uuid, a library that saw its 1.0.0 release on July 19, 2012, and is now at version 3.4.1, having had 35 releases since its first, but what’s even more ludicrous is that I haven’t once blogged about this library. I mention it only in passing in my “Dates Are Hard” post. So, allow me to introduce you to perhaps a familiar face, an old friend, the ramsey/uuid library for PHP.

He starts with some of the original beginnings of the language back when Composer usage was just first taking off. He'd found other UUID implementations in PHP but none that rivaled the features found in library for other languages. He then briefly explains what a UUID is and what the RFC defines them as. He talks about the name change on the package (from the "Rhumsaa" namespace to "Ramsey") and an issue he received where UUIDs were colliding...as well as how he corrected it. He wraps up the post looking at some of what's coming for the library and what kind of improvements he'll be making in v3.4.1 and beyond.

tagged: ramsey uuid library introduction version opensource project rhumsaa improvement

Link: https://benramsey.com/blog/2016/04/ramsey-uuid/

Lars Strojny's Blog:
PHP Segfaulting with PECL/UUID and PECL/IMAGICK
Sep 08, 2010 @ 14:17:13

If you've been using (or will be using) the uuid and imagick extensions for PHP, you might be able to save yourself a lot of headache by reading this new post from Lars Strojny about his segfault woes.

Ran into a bug yesterday, where http://pecl.php.net/uuid in combination with http://pecl.php.net/imagick yielded a segfault when using uuid_create().

After trying to trace it down with a backtrace and cachegrind results, he (and Mikko & Pierre) found that both extensions were built against the libuuid.so.1 file. While that wasn't the issue directly, they did find a work-around that helped the issue - renaming some ini files so uuid was loaded first.

tagged: uuid imagick pecl extension segfault debug libuuid

Link:

Debuggable Blog:
String substitution using UUIDs
Aug 22, 2008 @ 12:04:39

On the Debuggable blog, Felix Geisendorfer shows how to create a string parser that allows you to pull out parts of the string you don't currently want manipulated to be put back later.

If you've ever written any non-trivial String processing code, you've probably ran into the situation where you wanted to exclude certain parts of your string for a certain operation. Usually that would mean you have to tokenize your string, or adjust the operation you want to run so it doesn't affect the part of the string you want to exclude from it. Both of those solutions can be fairly time intensive so I was looking for a shortcut and found one.

He provides the code for this string substitution class, a method substitute() that matches based on a regular expression and, if found, stores the parts for later use.

tagged: string substitution uuid manipulation regularexpression

Link:

The Bakery:
Four New Articles - Load Balancing, Request Info, UUID Behavior & Upload Thumbnails
Jun 08, 2007 @ 09:37:00

The Bakery has four new items posted today including articles looking at load balancing, the Request component and UUID behavior in your CakePHP application.

  • Load Balancing and MySQL Master and Slaves - If you are currently using MySql master/slave replication for load balancing and wish to transport to cakePHP, it really couldn't be easier.
  • Request Information Component - Need more insight into how a controller structures a CakePHP request? This little component will log important information and variables for each request to your application's debug log.
  • Uuid Behavior - I have a requirement to use UUID's as primary keys. I was initially using MySQL triggers to call uuid() on insert but in the end decided a behavior makes more sense. This behavior adds a UUID to the field specified in your models.
  • Improved Upload Behaviour with Thumbnails and Name Correction - This is an improved version of Chris Partridge's upload behaviour (http://bin.cakephp.org/saved/17539). The behaviour is able to generate thumbnails if used for images (JPEG/PNG only).

CakePHP users can check out these and more great articles, tutorials and more on The Bakery.

tagged: cakephp tutorial article upload thumbnail uuid request loadbalance cakephp tutorial article upload thumbnail uuid request loadbalance

Link:

The Bakery:
Four New Articles - Load Balancing, Request Info, UUID Behavior & Upload Thumbnails
Jun 08, 2007 @ 09:37:00

The Bakery has four new items posted today including articles looking at load balancing, the Request component and UUID behavior in your CakePHP application.

  • Load Balancing and MySQL Master and Slaves - If you are currently using MySql master/slave replication for load balancing and wish to transport to cakePHP, it really couldn't be easier.
  • Request Information Component - Need more insight into how a controller structures a CakePHP request? This little component will log important information and variables for each request to your application's debug log.
  • Uuid Behavior - I have a requirement to use UUID's as primary keys. I was initially using MySQL triggers to call uuid() on insert but in the end decided a behavior makes more sense. This behavior adds a UUID to the field specified in your models.
  • Improved Upload Behaviour with Thumbnails and Name Correction - This is an improved version of Chris Partridge's upload behaviour (http://bin.cakephp.org/saved/17539). The behaviour is able to generate thumbnails if used for images (JPEG/PNG only).

CakePHP users can check out these and more great articles, tutorials and more on The Bakery.

tagged: cakephp tutorial article upload thumbnail uuid request loadbalance cakephp tutorial article upload thumbnail uuid request loadbalance

Link: