comsave/common
Shared common utilities for Laravel/PHP projects by Comsave. Provides reusable helpers and foundational components to reduce duplication across apps and packages, keeping shared logic centralized and easy to maintain.
Installation
composer require comsave/common
Add to config/app.php under providers:
Comsave\Common\CommonServiceProvider::class,
Publish Config (if needed)
php artisan vendor:publish --provider="Comsave\Common\CommonServiceProvider"
Check config/comsave.php for defaults.
First Use Case: Basic Helper Usage
use Comsave\Common\Helpers\StringHelper;
$sanitized = StringHelper::sanitizeInput('user_input');
$slug = StringHelper::toSlug('Example Title');
Facade Access
use Comsave\Common\Facades\Common;
$result = Common::helper()->sanitize('raw_input');
String Manipulation
$slug = Common::helper()->toSlug('Laravel 10 Guide');
$clean = Common::helper()->sanitize('<script>alert(1)</script>');
Data Validation
use Comsave\Common\Rules\ValidEmailDomain;
$request->validate([
'email' => ['required', new ValidEmailDomain(['gmail.com'])]
]);
API Response Handling
return Common::response()->success(['data' => $model]);
return Common::response()->error('Invalid input', 422);
Event Handling
event(new \Comsave\Common\Events\LogActivity('User updated'));
$this->app->bind('custom.helper', function () {
return new \App\Services\CustomHelper();
});
Route::middleware(['sanitize.input'])->group(function () {
// Routes requiring input sanitization
});
Blade::directive('sanitize', function ($expression) {
return "<?php echo Comsave\\Common\\Helpers\\StringHelper::sanitize({$expression}); ?>";
});
Usage:
@sanitize($userInput)
Deprecated Methods
StringHelper::clean() may alias to sanitize()).Configuration Overrides
config/comsave.php:
'sanitize' => [
'allowed_tags' => '<p><a><strong>', // Update for Laravel 10's HTML parsing
],
Event Listeners
EventServiceProvider isn’t registered. Ensure:
protected $listen = [
\Comsave\Common\Events\LogActivity::class => [
\App\Listeners\LogActivityListener::class,
],
];
Facade Caching
php artisan config:clear
php artisan cache:clear
Common::logger()->debug() for debugging.config/comsave.php:
'debug' => env('APP_DEBUG', false),
This logs validation rules and sanitization steps.Custom Helpers
StringHelper trait or create a new helper class:
use Comsave\Common\Traits\StringHelperTrait;
class AppStringHelper {
use StringHelperTrait;
public function customMethod($input) {
return $this->sanitize($input) . ' (custom)';
}
}
Response Macros
Common::response()->macro('customResponse', function ($data) {
return response()->json(['custom' => $data]);
});
Middleware Extensions
SanitizeInput middleware:
namespace App\Http\Middleware;
use Comsave\Common\Http\Middleware\SanitizeInput as BaseSanitize;
class CustomSanitize extends BaseSanitize {
protected $customRules = ['extra_rule' => 'custom_validation'];
}
Common::helper()->sanitize($input, false); // Skip sanitization
$slug = Common::helper()->toSlug('Title', true); // Cache the slug
How can I help you explore Laravel packages today?