Recommend this page to a friend! |
Classes of Jorge Castro | PHP Message Container | README.md | Download |
|
DownloadMessageContainerIt is a Message Container for PHP, similar in functionality MessageBag for Laravel. However this is aimed for speed and usability and it doesn't have any dependency. This class is simple: 2 classes, no dependency and nothing more. You can use in any PHP project. What is the objective?This library stores messages (strings) in different lockers and each locker could contain different messages with different levels (error, warning, info and success). The goal of this library:
It is an example from where we could use it, the validation of a form (this library does not validate or show values it only stores the information) In this example, we have :
If we use plain-PHP, we could show some messages of the password:
But what if the id password does not contain any message, or if there is no error? of if there is more than error? So we could re-define something like that: (but it will still fail if there is more than one error)
And with our library
How to use it
DefinitionsLets say the next example of container that shows every part of the Container. We have 3 levels of spaces.
Messages are leveled as follows | id | Description | Example | | ------- | ------------------------------------------------------------ | ----------------------------------------- | | error | The message is an error, and it must be solved. It is our show stopper. | Database is down | | warning | The message is a warning that maybe it could be ignored. However, the class MessageContainer could allow to group Error and Warning as the same. | The registry was stored but with warnings | | info | The message is information. For example, to log or debug an operation. | Log is stored | | success | The message is a successful operation | Order Accepted | Example:
Adding a new messageTo add a new message inside a locker, we use the method addItem()
Where
> Note: We could add one or many messages to a locker. In the later example, the locker locker2 stores 3 messages. > > Note: The message is evaluated when we call the method addItem() Getting the messagesMessageContainer stores a list of lockers of messages. It's aimed at convenience, so it features many methods to access the information in different ways. Messages are ranked as follows | id | Description | Example | | ------- | ------------------------------------------------------------ | ----------------------------------------- | | error | The message is an error, and it must be solved. It is a show stopper. | Database is down | | warning | The message is a warning that maybe it could be ignored. | The registry was stored but with warnings | | info | The message is information | Log is stored | | success | The message is a successful operation | Order Accepted | Sometimes, both errors are warning are considered as equals. So the system allows reading an error or warning. Error always has the priority, then warning, info and success. If you want to read the first message, then it starts searching for errors. You can obtain a message as an array of objects of the type MessageLocker, as an array of string, or as a single string (first message)
MessageContainerCount of messages of all lockers| Name of the field | Type | Description | | ----------------- | ---- | --------------------------------------------------- | | $errorCount | int | Get the number of errors in all lockers | | $warningCount | int | Get the number of warnings in all lockers | | $errorOrWarning | int | Get the number of errors or warnings in all lockers | | $infoCount | int | Get the number of information messages. | | $successCount | int | Get the number of success messages. | Example:
Obtain messages or text of all lockers| Name | Type | Description | Example of result | | ------------------ | ------ | ------------------------------------------------------------ | ----------------------------------------- | | firstErrorText() | method | Returns the first message of error of all lockers | "Error in field" | | firstWarningText() | method | Returns the first message of warning of all lockers | "warning in field" | | firstInfoText() | method | Returns the first message of info of all lockers | "info: log" | | firstSuccessText() | method | Returns the first message of success of all lockers | "Operation successful" | | allError() | method | Returns all errors of all lockers (as an array of objects of the type MessageLocker) | MessageLocker[] | | allWarning() | method | Returns all warning of all lockers (as an array of objects of the type MessageLocker) | MessageLocker[] | | allInfo() | method | Returns all info of all lockers (as an array of objects of the type MessageLocker) | MessageLocker[] | | allSuccess() | method | Returns all success of all lockers (as an array of objects of the type MessageLocker) | MessageLocker[] | | allErrorArray() | method | Returns all errors of all lockers (as an array of texts) | ["Error in field1","Error in field2"] | | allWarningArray() | method | Returns all warning of all lockers (as an array of texts) | ["Warning in field1","Warning in field2"] | | allInfoArray() | method | Returns all info of all lockers (as an array of texts) | ["Info in field1","Info in field2"] | | allSuccessArray | method | Returns all success of all lockers (as an array of texts) | ["Info in field1","Info in field2"] |
Css for a specific containerIt is possible to obtain a CSS class based in the current level or state of a container.
Misc| Name | Type | Description | | ---------- | ------ | ------------------------------------------------------------ | | $items | field | We get all lockers (array of the type MessageLocker). Each container could contain many messages. | | resetAll() | method | $array=$this-messageList->items; $this-messageList->items['id'];Delete all lockers and reset counters | | addItem() | method | It adds a new message to a container | | allIds() | method | Get all the id of the lockers | | get() | method | Get a container (as an object of the type MessageLocker). You can also use items[] | | hasError() | method | Returns true if there is an error. |
MessageLockerInside MessageContainer we could have one or many lockers( MessageLocker ). Obtain messages of a specific container| Name | Type | Description | Example of result | | ------------------ | ------ | --------------------------------------------------------- | ----------------------------------------- | | firstErrorText() | method | Returns the first message of error of a container | "Error in field" | | firstWarningText() | method | Returns the first message of warning of a container | "warning in field" | | firstInfoText() | method | Returns the first message of info of a container | "info: log" | | firstSuccessText() | method | Returns the first message of success of a container | "Operation successful" | | allError() | method | Returns all errors of a container (as an array of texts) | ["Error in field1","Error in field2"] | | allWarning() | method | Returns all warning of a container (as an array of texts) | ["Warning in field1","Warning in field2"] | | allInfo() | method | Returns all info of a container (as an array of texts) | ["Info in field1","Info in field2"] | | allSuccess() | method | Returns all success of a container (as an array of texts) | ["Info in field1","Info in field2"] |
Definitions of the classes
MessageContainerClass MessageList Field items (MessageLocker[])Array of containers Field errorCount (int)Number of errors stored globally Field warningCount (int)Number of warnings stored globally Field errorOrWarningCount (int)Number of errors or warning stored globally Field infoCount (int)Number of information stored globally Field successCount (int)Number of success stored globally Field cssClasses (string[])Used to convert a type of message to a css class Method __construct()MessageList constructor. Method resetAll()It resets all the container and flush all the results. Method addItem()You could add a message (including errors,warning..) and store it in a $idLocker Parameters:
Method allIds()It obtains all the ids for all the lockers. Method get()Alias of $this->getMessage() Parameters:
Method getLocker()It returns a MessageLocker containing an locker.<br> <b>If the locker doesn't exist then it returns an empty object (not null)</b> Parameters:
Method cssClass()It returns a css class associated with the type of errors inside a locker<br> If the locker contains more than one message, then it uses the most severe one (error,warning,etc.)<br> The method uses the field <b>$this->cssClasses</b>, so you can change the CSS classes. <pre> $this->clsssClasses=['error'=>'class-red','warning'=>'class-yellow','info'=>'class-green','success'=>'class-blue']; $css=$this->cssClass('customerId'); </pre> Parameters:
Method firstErrorOrWarning()It returns the first message of error or empty if none<br> If not, then it returns the first message of warning or empty if none Parameters:
Method firstErrorText()It returns the first message of error or empty if none Parameters:
Method firstWarningText()It returns the first message of warning or empty if none Parameters:
Method firstInfoText()It returns the first message of information or empty if none Parameters:
Method firstSuccessText()It returns the first message of success or empty if none Parameters:
Method allArray()It returns an array with all messages of any type of all lockers Parameters:
Method allErrorArray()It returns an array with all messages of error of all lockers. Parameters:
Method allWarningArray()It returns an array with all messages of warning of all lockers. Method allErrorOrWarningArray()It returns an array with all messages of errors and warnings of all lockers. Method allInfoArray()It returns an array with all messages of info of all lockers. Method AllSuccessArray()It returns an array with all messages of success of all lockers. Method allAssocArray()It returns an associative array of the form <br> <pre> [ ['id'=>'', // id of the locker 'level'=>'' // level of message (error, warning, info or success) 'msg'=>'' // the message to show ] ] </pre> Parameters:
Method hasError()It returns true if there is an error (or error and warning). Parameters:
MessageLockerClass MessageLocker Method __construct()MessageLocker constructor. Parameters:
Method setContext()We set the context only if the current context is null. Parameters:
Method addError()It adds an error to the locker. Parameters:
Method replaceCurlyVariable()Replaces all variables defined between {{ }} by a variable inside the dictionary of values.<br> Example:<br> replaceCurlyVariable('hello={{var}}',['var'=>'world']) // hello=world<br> replaceCurlyVariable('hello={{var}}',['varx'=>'world']) // hello=<br> replaceCurlyVariable('hello={{var}}',['varx'=>'world'],true) // hello={{var}}<br> Parameters:
Method addWarning()It adds a warning to the locker. Parameters:
Method addInfo()It adds an information to the locker. Parameters:
Method addSuccess()It adds a success to the locker. Parameters:
Method countErrorOrWarning()It returns the number of errors or warnings contained in the locker Method countError()It returns the number of errors contained in the locker Method countWarning()It returns the number of warnings contained in the locker Method countInfo()It returns the number of infos contained in the locker Method countSuccess()It returns the number of successes contained in the locker Method first()It returns the first message of any kind.<br> If error then it returns the first message of error<br> If not, if warning then it returns the first message of warning<br> If not, then it show the first info message (if any)<br> If not, then it shows the first success message (if any)<br> If not, then it shows the default message. Parameters:
Method firstError()It returns the first message of error, if any. Otherwise it returns the default value Parameters:
Method firstWarning()It returns the first message of warning, if any. Otherwise it returns the default value Parameters:
Method firstErrorOrWarning()It returns the first message of error or warning (in this order), if any. Otherwise it returns the default value Parameters:
Method firstInfo()It returns the first message of info, if any. Otherwise it returns the default value Parameters:
Method firstSuccess()It returns the first message of success, if any. Otherwise it returns the default value Parameters:
Method all()Returns all messages or an empty array if none. Parameters:
Method allError()Returns all messages of errors (as an array of string), or an empty array if none. Method allWarning()Returns all messages of warning, or an empty array if none. Method allErrorOrWarning()Returns all messages of errors or warnings, or an empty array if none Method allInfo()Returns all messages of info, or an empty array if none. Method allSuccess()Returns all messages of success, or an empty array if none. Method allAssocArray()It returns an associative array of the form:<br> <pre> [ ['id'=>'', // id of the locker 'level'=>'' // level of message (error, warning, info or success) 'msg'=>'' // the message to show ] ] </pre> Parameters:
Method hasError()It returns true if there is an error (or error and warning). Parameters:
changelog
|