CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

01 April, 2021

PHP Array Redactor

 Programing Coderfunda     April 01, 2021     Laravel, Packages     No comments   

 

PHP Array Redactor

The Array Redactor package is a PHP library by Mark Townsend to redact array values by their keys. I think the easiest way to understand how this package works is with a code example from the readme:

use Mtownsend\ArrayRedactor\ArrayRedactor;

// An example array, maybe a request being made to/from an API application you wish to log in your database
$login = [
'email' => 'john_doe@domain.com',
'password' => 'secret123',
'data' => [
'session_id' => 'z481jf0an4kasnc8a84aj831'
],
];

$redactor = (new ArrayRedactor($login, ['password', 'session_id']))->redact();

// $redactor will return:
[
'email' => 'john_doe@domain.com',
'password' => '[REDACTED]',
'data' => [
'session_id' => '[REDACTED]'
],
];


The package also allows you to pass a valid JSON string instead of an array of content:

$json = json_encode([
'email' => 'john_doe@domain.com',
'password' => 'secret123',
'data' => [
'session_id' => 'z481jf0an4kasnc8a84aj831'
],
]);

$redactor = (new ArrayRedactor($json, ['password', 'session_id']))->redact();


The redactor call returns an array version of the JSON string just like the previous example.

This package is useful for any PHP project, and additionally provides a service provider you may use with Lumen and Laravel. Further, if you want to use the project’s Laravel Facade, you need to register the alias in your config/app.php file:

<?php

return [
// ...
'aliases' => [
// ...
'ArrayRedactor' => Mtownsend\ArrayRedactor\Facades\ArrayRedactor::class,
],
];

When then enables the following within a Laravel project:

use ArrayRedactor;

// Laravel prefills our keys() and ink() methods for us from the config file
ArrayRedactor::content($array)->redact();

When using this project with the Laravel Facade, you need to configure the keys to redact, which can be found in the config/arrayredactor.php file after you publish the vendor config.

Why might you want to use this package? The author provides an explanation in the package’s readme:

Have you ever built or interacted with an api and needed to log all outgoing and incoming calls? Chances are that somewhere in that process is an authentication, either by an app or on behalf of a user. Logs are useful for debugging, but storing sensitive information such as passwords or api keys is not something you want to have in your logs for anyone to see. The usage goes beyond just this example, but that is what prompted me to create the ArrayRedactor package.

You can learn more about this package, get full installation instructions, and view the source code on GitHub at mtownsend5512/array-redactor.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Advanced State Support for Laravel Models

 Programing Coderfunda     April 01, 2021     Laravel, Packages     No comments   

 

Advanced State Support for Laravel Models

Laravel Model States is a Spatie package by Brent Roose that adds advanced state support to Laravel models.

For full details on this package, read the official documentation; however, we will provide a few examples from the readme here to give you an idea what this package provides:

Here’s an example from the readme of a Payment model and how you’d define a state for this model using this package:

use Spatie\ModelStates\HasStates;

/**
* @property \App\States\PaymentState state
*/

class Payment extends Model
{
use HasStates;

protected function registerStates(): void
{
$this
->addState('state', PaymentState::class)
->allowTransition(Pending::class, Paid::class)
->allowTransition(Pending::class, Failed::class, PendingToFailed::class);
}
}

The PaymentState in the example above is defined as follows:

// The abstract PaymentState class
use Spatie\ModelStates\State;

abstract class PaymentState extends State
{
abstract public function color(): string;
}

// The "paid" state for the Payment model
class Paid extends PaymentState
{
public function color(): string
{
return 'green';
}
}

And finally here’s an example of transitioning the state:

$payment = Payment::find(1);

$payment->state->transitionTo(Paid::class);

echo $payment->state->color();

According to the package readme, it combines the concepts from the state pattern and state machines—you should be familiar with these concepts before using this package. The video State Pattern – Design Patterns (ep 17) is an excellent resource for understanding the basics of state machines.

To learn more about this package, view the source code on GitHub at spatie/laravel-model-states and read the model states documenation.

This package was submitted to our Laravel News Links section. This section is a place the community can post packages and tutorials around the Laravel ecosystem. Follow along on Twitter @LaravelLinks

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Laravel Geocoding

 Programing Coderfunda     April 01, 2021     Laravel, Packages     No comments   

 

Laravel Geocoding

Geocod.io the geocoding service created by Mathias Hansen has just released a PHP and Laravel library for integrating with the service. It includes geocoding, reverse geocoding, and data matching for US and Canadian addresses.

Here is an example:

$response = Geocodio::geocode('1109 N Highland St, Arlington, VA');

/*
{
"input": {
"address_components": {
"number": "1109"
"predirectional": "N"
"street": "Highland"
"suffix": "St"
"formatted_street": "N Highland St"
"city": "Arlington"
"state": "VA"
"country": "US"
}
"formatted_address": "1109 N Highland St, Arlington, VA"
}
"results": array:2 [
0 => {
"address_components": {
"number": "1109"
"predirectional": "N"
"street": "Highland"
"suffix": "St"
"formatted_street": "N Highland St"
"city": "Arlington"
"county": "Arlington County"
"state": "VA"
"zip": "22201"
"country": "US"
}
"formatted_address": "1109 N Highland St, Arlington, VA 22201"
"location": {
"lat": 38.886672
"lng": -77.094735
}
"accuracy": 1
"accuracy_type": "rooftop"
"source": "Arlington"
}
1 => {
"address_components": {
"number": "1109"
"predirectional": "N"
"street": "Highland"
"suffix": "St"
"formatted_street": "N Highland St"
"city": "Arlington"
"county": "Arlington County"
"state": "VA"
"zip": "22201"
"country": "US"
}
"formatted_address": "1109 N Highland St, Arlington, VA 22201"
"location": {
"lat": 38.886665
"lng": -77.094733
}
"accuracy": 1
"accuracy_type": "rooftop"
"source": "Virginia Geographic Information Network (VGIN)"
}
]
}
*/

Of course, this is just the basics and geocoding can be useful for a myriad of things while we are building applications. This could be everything from finding latitude/longitude, addresses, proper zip codes, timezones, or even Congressional information.

You can find out more details and try out the package from their Github repo and the first 2,500 lookups per day are free.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

API Logger Package

 Programing Coderfunda     April 01, 2021     Laravel, Packages     No comments   

 

API Logger Package

API Logger is a Laravel package by @aungwinthant that helps in debugging API logs. It can log the request method, URL, duration, request payload, models, and controller action.

It comes with a dashboard (the route in your application is /apilogger) where you can visualize all this data from your Laravel routes:


To log a route, you use the following middleware:

Route::middleware('apilogger')
->post('/test',function(){
return response()->json("test");
});

You can also implement a custom log driver by implementing an interface provided by this package.

To learn more about this package, get full installation instructions, and view the source code on GitHub at aungwinthant/apilogger.

This package was originally submitted to our Laravel News Links section. Follow along on Twitter @LaravelLinks

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Newer Posts Older Posts Home

Meta

Popular Posts

  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...
  • iOS 17 Force Screen Rotation not working on iPAD only
    I have followed all the links on Google and StackOverFlow, unfortunately, I could not find any reliable solution Specifically for iPad devic...
  • C++ in Hindi Introduction
    C ++ का परिचय C ++ एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। C ++ को Bjarne Stroustrup द्वारा विकसित किया गया था। C ++ में आने से पह...
  • Send message via CANBus
    After some years developing for mobile devices, I've started developing for embedded devices, and I'm finding a new problem now. Th...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda