The Blog

Laravel 5

Laravel 5 Macros: Injecting Class-Based Macros With mixin

John Koster
John Koster
April 21, 2018

The mixin static method in Laravel allows you to load the methods of a mixin class instance into a target class as macro methods. You can use the mixin method by passing a class instance as its argument. For example, you can define a string mixin class StringEncryptionMixins and add it to the Str class to provide encryption and decryption methods. Once loaded, you can use the mixin methods as static methods of the Str class.

Laravel 5

Laravel 5 Macros: Public API

John Koster
John Koster
April 21, 2018

This section explores the various methods available when using the Macroable trait in Laravel. Despite their limited number, these methods are extremely beneficial. Additional articles discuss specific methods in the macro's public API, such as defining a callback function macro, injecting class-based macros, determining if a class has a macro defined, and using call and callstatic methods.

Laravel 5

Laravel 5 Macros

John Koster
John Koster
April 21, 2018

Macros in Laravel are a way to add functionality to various classes at runtime, similar to C#'s extension methods. Through the "\Illuminate\Support\Traits\Macroable" trait, many default classes in Laravel can support macros. Some of these classes include Illuminate\Auth\RequestGuard, Illuminate\Database\Query\Builder, and Illuminate\Support\Collection. Using macros reduces code duplication and allows developers to achieve the desired result with fewer lines of code.

Laravel 5

Laravel 5 Message Bags: Adding Messages to the Message Bag With add

John Koster
John Koster
April 21, 2018

The add method in the MessageBag class allows you to add a new message identified by a given key and containing a specified value. It returns the current MessageBag instance. You can retrieve all messages in the form of an array using the getMessages method. In validation scenarios, the key is commonly the name of the form element being validated.

Laravel 5

Laravel 5 Message Bags: Checking if Messages Exist for a Specific Input Key With has

John Koster
John Koster
April 21, 2018

The has method can be used to determine if messages exist within a MessageBag instance for a given key. By calling the has method, it will return true if messages exist for the given key, and false if no messages exist. With this method, you can easily check if messages are present without having to iterate through the entire MessageBag to find a specific key.

Laravel 5

Laravel 5 Message Bags: Checking if There Are Any Messages With isEmpty

John Koster
John Koster
April 21, 2018

The isEmpty method in Laravel's MessageBag class is used to check if the message bag is empty. It returns a boolean value indicating whether the message bag has any messages or not. An example usage demonstrates how to create a new MessageBag instance, add messages to it, and then check if the message bag is empty or not.

Laravel 5

Laravel 5 Message Bags: Checking if There Are Any Messages With isNotEmpty

John Koster
John Koster
April 21, 2018

The isNotEmpty method in Laravel's MessageBag class checks if the instance contains any messages and returns a boolean value accordingly. It is simply an alias of the any method. For example, you can create a MessageBag instance, check if it has any messages using isNotEmpty, and get a boolean result.

Laravel 5

Laravel 5 Message Bags: Converting a Message Bag to a String with __toString

John Koster
John Koster
April 21, 2018

The __toString magic method in PHP can be used to cast a MessageBag instance into a string. This method returns the JSON representation of the MessageBag object. To use this method, simply cast the MessageBag object as a string. For example, you can create a MessageBag instance and cast it to a string like this: $stringValue = (string) $messageBag;. The resulting string will contain the JSON representation of the MessageBag object.

Laravel 5

Laravel 5 Message Bags: Converting the Message Bag to an Array With toArray

John Koster
John Koster
April 21, 2018

The toArray method in Laravel's MessageBag class retrieves the instance as an array. It accomplishes this by internally calling the getMessages method. You can use the toArray method to convert a MessageBag object into an array of messages. An example usage is demonstrated in the code snippet provided. After executing the code, the $messages variable will be an array containing all the messages added to the MessageBag instance.

Laravel 5

Laravel 5 Message Bags: Converting the Message Bag to JSON With toJson

John Koster
John Koster
April 21, 2018

The toJson method in Laravel's MessageBag class allows you to convert the instance into a JSON-encoded string. The method uses PHP's json_encode function internally, accepting any options specified. The resulting JSON can be formatted for improved readability by using the JSON_PRETTY_PRINT constant. For deep nesting scenarios, where the depth exceeds the default limit of 512, a custom approach using json_encode is recommended.

Latest posts

Where Things get Good: Moving on to Forte Development Phase 1

Wrapping up Forte Phase 0 with the lexer and parser now in private alpha, and kicking off Phase 1 wi...

Read more
Forte Update: Backtracking, Metadata, HTML Validation, and More

A Forte development update: the parser now supports backtracking, improvements to node metadata, ide...

Read more
Parsing HTML and Blade Attributes in Forte

Wrapping up attribute parsing in Forte's HTML parser, from simple HTML attributes to complex, edge-c...

Read more
Switch Statements and Parser Extensions in Forte

Exploring how Forte's parser extensions can be used to handle complex Blade directives like nested s...

Read more
Parsing Blade Comments in Forte

Digging into parsing Blade and HTML comments while building Forte's HTML parser for Laravel Blade.

Read more
Thoughts on HTML Elements and Blade Components in Forte

This week I’m tackling Forte's HTML parser - consolidating Blade, Flux, and Livewire components into...

Read more