Deploy and execute non-PHP AWS Lambda functions from your Laravel application.

Overview

Sidecar for Laravel

Tests Latest Stable Version Total Downloads License

Deploy and execute non-PHP AWS Lambda functions from your Laravel application.

Read the full docs at hammerstone.dev/sidecar/docs.

Follow me on Twitter for more updates: twitter.com/aarondfrancis

To install, simply require the package from composer: composer require hammerstone/sidecar

This package is still under development, please open issues for anything you run into.

What Sidecar Does

Sidecar packages, creates, deploys, and executes Lambda functions from your Laravel application.

You can write functions in any of the following runtimes and execute them straight from PHP:

  • Node.js 14
  • Node.js 12
  • Node.js 10
  • Python 3.8
  • Python 3.7
  • Python 3.6
  • Python 2.7
  • Ruby 2.7
  • Ruby 2.5
  • Java 11
  • Java 8
  • Go 1.x
  • .NET Core 3.1
  • .NET Core 2.1

Any runtime that Lambda supports, you can use!

What It Looks Like

Every Sidecar Function requires two things:

  • A PHP Class
  • Files that you want deployed to Lambda

For example, if we were wanting to use Node on Lambda to generate an og:image for all of our blog posts, we would first set up a simple class in PHP called OgImage.

App\Sidecar\OgImage.php

namespace App\Sidecar;

use Hammerstone\Sidecar\LambdaFunction;

class OgImage extends LambdaFunction
{
    public function handler()
    {
        // Define your handler function. 
        return 'lambda/image.handler';
    }

    public function package()
    {
        // All files and folders needed for the function.
        return [
            'lambda',
        ];
    }
}

That's it! There are a lot more options, but that's all that is required.

The second thing you'd need is your function's "handler", in this case a javascript file.

Here's a simple JS file that could serve as our handler:

resources/lambda/image.js

const {createCanvas} = require('canvas')

exports.handler = async function (event) {
    const canvas = createCanvas(1200, 630)
    const context = canvas.getContext('2d')

    context.font = 'bold 70pt Helvetica'
    context.textAlign = 'center'
    context.fillStyle = '#3574d4'

    // Read the text out of the event passed in from PHP.
    context.fillText(event.text, 600, 170);
    
    // Return an image.
    return canvas.toDataURL('image/jpeg');
}

With those files created, you can deploy this function to Lambda:

php artisan sidecar:deploy --activate

And then execute it straight from your Laravel app!

web.php

Route::get('/ogimage', function () {
    return OgImage::execute([
        'text' => 'PHP to JS and Back Again!'
    ]);
});

Sidecar passes the payload from execute over to your Javascript function. Your Javascript function generates an image and sends it back to PHP.

Sidecar reduces the complexity of deploying small bits of code to Lambda.

Why Sidecar Exists

AWS Lambda is a powerful service that allows you to run code without provisioning or thinking about servers.

Laravel Vapor brought that power to Laravel. Using Vapor, you can run your plain ol' Laravel apps on a serverless platform and get incredible speed, security, and reliability.

Using Lambda through Vapor is a wonderful developer experience, but there are times when building your applications that you need to run just one or two Node functions for some reason. Common use cases could be taking screenshots with headless Chrome, generating images, or doing server-side rendering of your Javascript frontend.

Or maybe you want to run a Python script without configuring a server? Or a single Ruby script. Or even Java!

When running on a serverless platform, it's not quite as easy as installing Node and running your functions. You don't have access to the server! So you end up deploying a single Vercel or Netlify function and calling it over HTTP or just forgetting the thing altogether.

Sidecar brings the ease of Vapor to those non-PHP functions.

What Sidecar Doesn't Do

Sidecar does not handle any API Gateway, Databases, Caches, etc. The only thing Sidecar concerns itself with is packaging, creating, deploying, and executing Lambda functions.

Sidecar does not provide a way to execute a function via HTTP. You must execute it from your Laravel app through the provided methods.

If you need those other services, you are encouraged to use the instances that Vapor has set up for you, or set them up yourself.

Comments
  • Constant 409 update in progress bug

    Constant 409 update in progress bug

    We're facing a very strange issue which is constantly breaking out deploys.

    We have to manually delete all the Lambda's before trying to deploy, otherwise we encounter the following:

    Error executing "UpdateFunctionCode" on "https://lambda.***.amazona  
      ws.com/2015-03-31/functions/SC-Appname-staging-Sidecar-Dacast-CreateLivestrea  
      m/code"; AWS HTTP error: Client error: `PUT https://lambda.***.amazon  
      aws.com/2015-03-31/functions/SC-Appname-staging-Sidecar-Dacast-CreateLivestre  
      am/code` resulted in a `409 Conflict` response:                              
      {"Type":"User","message":"The operation cannot be performed at this time. A  
      n update is in progress for resource: arn:aws (truncated...)                 
       ResourceConflictException (client): The operation cannot be performed at t  
      his time. An update is in progress for resource: arn:aws:lambda:***:6  
      88009524528:function:SC-Appname-staging-Sidecar-Dacast-CreateLivestream - {"T  
      ype":"User","message":"The operation cannot be performed at this time. An u  
      pdate is in progress for resource: arn:aws:lambda:***:688009524528:fu  
      nction:SC-Appname-staging-Sidecar-Dacast-CreateLivestream"}   
    

    We're a bit lost here, is there anything we're doing wrong? We have changed our Sidecar implementation in the last 3 months, it just started happening 4 days ago and it's becoming a hair puller.

    Any guidance?

    opened by maurocasas 26
  • Fix for specifying a directory in a package when deploying from windows

    Fix for specifying a directory in a package when deploying from windows

    When using specifying a directory in the package function windows paths becomes a mix of \ and /.

    This commit changes the way the Finder class retrieves the path.

    Since SplFileInfo::getPathname returns a mixture of paths on windows and creating zips on windows really likes / . I replaced the call to getPathname() with $file->getPath() . '/'. $file->getFilename() both functions on SplFileInfo

    This means the \ that gets added between the folder and file in question is always a /.

    This change may need testing on other platforms but should be okay.

    opened by w00key 8
  • Add ability to configure ephemeral storage size

    Add ability to configure ephemeral storage size

    Adds a storage method and config option to allow configuring a Lambda's ephemeral storage.

    Tested in my own AWS account and ~AWS appears to completely ignore the parameter.... will keep fiddling with it~ works like a charm.

    Closes #70.

    opened by bakerkretzmar 7
  • PHP runtime and Queueable code

    PHP runtime and Queueable code

    Hi, is it possible to use custom PHP runtime such as bref.sh?

    Then Queueable PHP code or Jobs (with packages) could be run in Lambdas.

    Possibly, whole Laravel app could be deployed to Lambda with ex. sidecar:deploy --clone and all existing classes could be available including Jobs - Lambda would act like PHP process.

    Or another interesting usecase; helper runInLambda(function() { /* any code */ }) will run the function in Lambda in the context of the cloned application.

    opened by misog 7
  • Improve LambdaFunction naming and prefix convention

    Improve LambdaFunction naming and prefix convention

    Due to using a . in your APP_NAME value we were encountering issues when deploying our new versions.

    In order to work around this, I'm proposing to change how the prefix is built, as well as the name for the function using the previously mentioned prefix.

    I have also removed the usage of str_replace and use Str::slug instead because str_replace scope is too narrow only replacing spaces and allowing special characters (such as dots, commas and so)

    sidecar.php config has been extended to allow customization of the Lambda naming prefix, defaulting at SC

    opened by maurocasas 7
  • 💡

    💡 "Fire and Forget" Execution of Sidecar Lambdas

    We have a use case for Sidecar where we want to "fire and forget", where our function needs to do some work, but we don't care about the result.

    As such, we don't want to be waiting around for the result.

    The issue with the existing asynchronous functionality is that you still need to wait for the requests to settle, otherwise the function won't be invoked.

    From some initial diving, the AWS SDK is using Guzzle under-the-hood and so this is probably a limitation of Guzzle more than it is this package or the SDK itself.

    I think there's a valid use case here, where people have lambda function's that perform "background tasks" or "processing". These functions don't return anything but perform a set of actions and as such you don't want to hold up execution of your application whilst these run. Some examples that spring to mind:

    • image processing
    • fetching meta data
    • audio/image/video optimisation

    For our specific use case, we have an event that takes place in our system and we want to dispatch a sidecar function. The sidecar function polls an API looking for a particular flag. When that flag is present, it runs a new API call and then exits.

    We've had this running as a queued job in our application, but when our queue is occasionally congested, the job doesn't run immediately on the queue. We run on Vapor and given how the queues work, we cannot setup a separate queue that is invoked immediately or is given a higher priority. The job we want to run is time-sensitive and so needs to run ASAP. We use Sidecar for a couple things already and thought this could be a solution as we could asynchronously execute the Sidecar function and then continue on and have this run immediately in the background.

    From some initial thinking, this would probably be best strung up with SNS and SQS whereby we notify a topic and then subscribe and invoke the Sidecar function. We're happy to look at drafting a PR that would add this functionality, but before doing so, we wanted to see if this was something that you'd consider adding to Sidecar, and if so, whether there is a different approach that you might take.

    opened by jryd 6
  • Unable to deploy through Github Actions + Vapor

    Unable to deploy through Github Actions + Vapor

    Hello!

    Our CI goes through GH Actions, and we have set the proper repo secrets to validate it wasn't on our end.

    InvalidArgumentException 
    
      Missing required client configuration options: 
    
    region: (string)
    
      A "region" configuration value is required for the "lambda" service
      (e.g., "us-west-2"). A list of available public regions and endpoints can be
      found at http://docs.aws.amazon.com/general/latest/gr/rande.html.
    
      at vendor/aws/aws-sdk-php/src/ClientResolver.php:406
        402â–•             $missing[] = $this->getArgMessage($k, $args, true);
        403â–•         }
        404â–•         $msg = "Missing required client configuration options: \n\n";
        405â–•         $msg .= implode("\n\n", $missing);
      ➜ 406▕         throw new IAE($msg);
        407â–•     }
        408â–• 
        409â–•     public static function _apply_retries($value, array &$args, HandlerList $list)
        410â–•     {
    
          +26 vendor frames 
      27  artisan:37
          Illuminate\Foundation\Console\Kernel::handle()
    

    This is the vapor .yml

    build:
        - 'composer install --classmap-authoritative'
        - 'php artisan event:cache'
        - 'php artisan route:clear'
        - 'php artisan view:clear'
        - 'composer dump-autoload'
        - 'npm install'
        - 'npm run dev && npm run admin:dev'
        - 'php artisan sidecar:deploy --env=canary'
        - 'rm -rf node_modules'
    deploy:
        - 'php artisan migrate --force'
        - 'php artisan config:clear'
        - 'php artisan cache:clear'
        - 'php artisan config:cache'
        - 'php artisan sidecar:activate'
        - 'php artisan devops:post-deploy'
    

    Currently running v0.3 + PHP8

    Appreciate all the help!

    opened by maurocasas 5
  • Infinite activation on Laravel Vapor

    Infinite activation on Laravel Vapor

    Hi @aarondfrancis!

    Something strange occurs when the activate command is running during a deployment in Laravel Vapor. When I run this command locally, it's super fast, but on Vapor it hangs infinite till the process is killed after a couple of minutes. Also with forcing the production environment locally, everything goes fine.

    Screenshot 2022-06-17 at 17 14 42

    My vapor.yaml is like:

    build:
     - ...
     - 'php artisan sidecar:deploy --env=production'
    deploy:
     - ...
     - 'php artisan sidecar:activate --env=production'
    

    Laravel Vapor does not show any errors but the deployment just 'fails'. They only thing AWS Cloudwatch tells me in the vapor-production-cli-log is: Fatal error: Uncaught Symfony\Component\Process\Exception\ProcessSignaledException: The process has been signaled with signal "11". in /var/task/vendor/symfony/process/Process.php:434

    Any idea what I'm doing wrong or where else I can look? Or did I just find a bug?

    Thanks!

    Jeffrey

    opened by jeffreyvanhees 4
  • Replace spaces with - in prefix too

    Replace spaces with - in prefix too

    Calling prefix() independently of nameWithPrefix() results in a function prefix which has spaces in it, which is not valid for a Lambda function name.

    opened by datashaman 4
  • Deleted Lambdas, cannot deploy anymore

    Deleted Lambdas, cannot deploy anymore

    Hey there!

    Most amazing package in a long time.. but cannot seem to debug what I've done wrong. I've had 2 functions and deleted them from my AWS to deploy fresh, and because I was getting really long delays on deploy when it's usually seconds..

    I am now getting this error

    Error executing "Invoke" on "https://lambda.us-east-1.amazonaws.com/2015-03-31/functions/SC-E-local-Sidecar-Zoom-EnableCustomLivestreaming%3Aactive/invocations"; AWS HTTP error: Client error: `POST https://lambda.us-east-1.amazonaws.com/2015-03-31/functions/SC-E-local-Sidecar-Zoom-EnableCustomLivestreaming%3Aactive/invocations` resulted in a `404 Not Found` response:
    {"Message":"Function not found: arn:aws:lambda:us-east-1:11111:function:SC-E-local-Sidecar-Zoom-EnableCustom (truncated...)
     ResourceNotFoundException (client): Function not found: arn:aws:lambda:us-east-1:111111:function:SC-E-local-Sidecar-Zoom-EnableCustomLivestreaming:active - {"Message":"Function not found: arn:aws:lambda:us-east-1:11111111:function:SC-E-local-Sidecar-Zoom-EnableCustomLivestreaming:active","Type":"User"}
    

    Any idea how I can "clear" this issue?

    Thanks again!

    opened by maurocasas 4
  • [ASK] Using AWS Lambda Layers upon deployment

    [ASK] Using AWS Lambda Layers upon deployment

    Hi, how do I configure AWS Lambda Layers?

    I've added the layer manually in the Lambda function, but it always get emptied on each deployment (php artisan sidecar:deploy).

    I've read the docs & source dive, but still couldn't figure it out.

    Is it at least possible to deploy the changes in the code only, without emptying the Layers that I've set manually?

    Thank you very much for this awesome package btw!

    opened by kevinpurwito 3
  • Cannot read property 'home' of undefined

    Cannot read property 'home' of undefined

    I use laravel vapor, everything works well on my local and staging environment, but on switching the env to production , even locally, I keep keeping the error in the image below

    image
    opened by infinitypaul 0
  • Can sidecar be used to run dynamic Node.js code on lambda  ?

    Can sidecar be used to run dynamic Node.js code on lambda ?

    Hey,

    Im trying to figure out a way to give a user a code editor in my platform to insert node code (including imports packages) and then run this user defined code with Sidecar - actual deploy the custom code function (node.js based) run it and then delete it

    Think about all the cloud editor platforms or automations platforms that give you run any node.js code as part of a workflow for example, that use case exactly.

    There is any way (even with tweaks needed) to make that happen with Sidecar ?

    Thanks

    opened by spaceworkplatform 1
  • [Question/Bug] Function Warming does not appear to be working

    [Question/Bug] Function Warming does not appear to be working

    Hi, thanks for the work on this package.

    I have a function deployed and it's working great. However, the warming does not appear to work.

    It has a warmingConfig of:

    return new WarmingConfig(2);
    

    I have the warming command in my schedule, like so:

    $schedule->command('sidecar:warm')->everyFiveMinutes();
    

    I have also manually run the warm command, and also run the helper through tinker. No errors.

    However, I can't see any requests coming through to my function for warming. If I trigger the function myself with a real payload, I see the request, it works fine. But obviously the first request is much longer because of a cold-start (12s versus 3s), hence the desire for warming.

    Re-reading the documentation, I don't believe I have missed anything, but I also cannot find or raise any errors or exceptions from the warming function, so I'm not sure which stage is failing.

    Any ideas?

    opened by roberttolton 0
  • 5 functions that take 30 seconds, split or keep together?

    5 functions that take 30 seconds, split or keep together?

    I'm building a scraper that scrapes 5 different websites for information, now I'm wondering

    • Is it better to create 5 separate sidecar functions, so 5 lambda functions, update the client of the progress after each step
    • Or create 1 big function that performs all 5 actions, which means I won't be able to update the client on the progress as easily

    What is the best practise?

    opened by notflip 1
Releases(v0.3.12)
  • v0.3.12(May 22, 2022)

    0.3.12 - 2022-05-22

    Changed

    • Move S3Client to the container. by @lukeraymonddowning in https://github.com/hammerstonedev/sidecar/pull/72

    Fixed

    • Fix for specifying a directory in a package when deploying from windows by @w00key in https://github.com/hammerstonedev/sidecar/pull/73

    New Contributors

    • @lukeraymonddowning made their first contribution in https://github.com/hammerstonedev/sidecar/pull/72

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.11...v0.3.12

    Source code(tar.gz)
    Source code(zip)
  • v0.3.11(May 12, 2022)

  • v0.3.10(May 11, 2022)

    What's Changed

    Added

    • Add ECR permissions to deployment user by @bakerkretzmar in https://github.com/hammerstonedev/sidecar/pull/62
    • Add ability to configure ephemeral storage size by @bakerkretzmar in https://github.com/hammerstonedev/sidecar/pull/71

    Fixed

    • Replace DIRECTORY_SEPARATOR with '/' by @w00key in https://github.com/hammerstonedev/sidecar/pull/69
    • Gracefully handle unexpected log output by @inxilpro in https://github.com/hammerstonedev/sidecar/pull/66

    New Contributors

    • @bakerkretzmar made their first contribution in https://github.com/hammerstonedev/sidecar/pull/62
    • @w00key made their first contribution in https://github.com/hammerstonedev/sidecar/pull/69
    • @inxilpro made their first contribution in https://github.com/hammerstonedev/sidecar/pull/66

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.9...v0.3.10

    Source code(tar.gz)
    Source code(zip)
  • v0.3.9(Apr 3, 2022)

    What's Changed

    • Add new runtimes to README by @datashaman in https://github.com/hammerstonedev/sidecar/pull/59
    • Add support for Guzzle v6 by @wilsenhc in https://github.com/hammerstonedev/sidecar/pull/58

    New Contributors

    • @datashaman made their first contribution in https://github.com/hammerstonedev/sidecar/pull/59
    • @wilsenhc made their first contribution in https://github.com/hammerstonedev/sidecar/pull/58

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.8...v0.3.9

    Source code(tar.gz)
    Source code(zip)
  • v0.3.8(Feb 15, 2022)

    Added

    • Support for Laravel 9.x by @felixdorn in https://github.com/hammerstonedev/sidecar/pull/50

    New Contributors

    • @felixdorn made their first contribution in https://github.com/hammerstonedev/sidecar/pull/50

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.7...v0.3.8

    Source code(tar.gz)
    Source code(zip)
  • v0.3.7(Feb 8, 2022)

    Added

    • Add yet another pending error string.
    • Added rawPromise method to PendingResult.

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.6...v0.3.7

    Source code(tar.gz)
    Source code(zip)
  • v0.3.6(Feb 7, 2022)

    0.3.6 - 2022-02-07

    Added

    • Ability to choose different architectures https://github.com/hammerstonedev/sidecar/pull/42
    • Sidecar now creates an environment variable checksum to avoid publishing a new version when not required.
    • Handlers now support an @ sign to be more consistent with Laravel. image@handler is the same as image.handler
    • If a payload is an instance of Arrayable, it will be cast to an array
    • Package is now macroable
    • New Region class full of consts

    Changed

    • All 409 logic now lives in client middleware https://github.com/hammerstonedev/sidecar/pull/47
    • waitUntilFunctionUpdated now accepts a string as well
    • The signature of Package::includeExactly now includes a followLinks second param.
    • SettledResult::errorAsString is public now

    Removed

    • ses, sqs, and dynamodb privileges were removed from the default execution role. This only affects new roles.

    New Contributors

    • @sfioritto made their first contribution in https://github.com/hammerstonedev/sidecar/pull/46
    • @clarkeash made their first contribution in https://github.com/hammerstonedev/sidecar/pull/42

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.5...v0.3.6

    Source code(tar.gz)
    Source code(zip)
  • v0.3.5(Jan 9, 2022)

    What's Changed

    Added

    • Add Package method to include strings as files.
    • Add Package method to include files with more explicit path control (#41)

    Fixed

    • Wait for the function to update before updating environment variables.
    • Be more clear when deleting keys

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.4...v0.3.5

    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(Jan 2, 2022)

    0.3.4 - 2022-01-02

    Fixed

    • Add method to ensure function is updated before we try to do anything else. Should hopefully fix #32

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.3...v0.3.4

    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Nov 1, 2021)

    0.3.3 - 2021-11-01

    Added

    • Added runtime constants (#33)
    • Add event invocation support (#36)

    Fixed

    • Docs typo (#31)
    • Update package documentation to include note for shipping node_modules (#34)

    New Contributors

    • @andresayej made their first contribution in https://github.com/hammerstonedev/sidecar/pull/31
    • @nuernbergerA made their first contribution in https://github.com/hammerstonedev/sidecar/pull/33
    • @jryd made their first contribution in https://github.com/hammerstonedev/sidecar/pull/34

    Full Changelog: https://github.com/hammerstonedev/sidecar/compare/v0.3.2...v0.3.3

    Source code(tar.gz)
    Source code(zip)
  • v0.3.2(Aug 13, 2021)

  • v0.3.1(Jul 31, 2021)

  • v0.3.0(Jul 20, 2021)

  • v0.2.0(Jul 13, 2021)

    0.2.0 - 2021-07-12

    Added

    • New sidecar.env config option to separate Sidecar environment from application environment. Useful mostly for teams who have multiple developers that all have an app env of local and don't want to be constantly overwriting each other's functions.
    • New sidecar:warm command (#6)
    • Better error reporting when sidecar:deploy is called and there are no functions.
    • Better error reporting when a function is not found.
    • Implemented sweeping to remove old, unused function versions (#15)
    • --pre-warm options to sidecar:deploy and sidecar:active commands (Commit)
    • latestVersionHasAlias method to the LambdaClient (Commit)

    Changed

    • Warming is now opt-in. 0 instances are configured by default. (Commit)
    • Moved some methods into the Sidecar\LambdaClient (#15)
    • Break out logging & environment concerns from the Lambda Client. (Commit)

    Fixed

    • Allow spacing in APP_NAME #17
    Source code(tar.gz)
    Source code(zip)
  • v0.1.4(Jun 5, 2021)

  • v0.1.3(May 25, 2021)

  • v0.1.2(May 24, 2021)

  • v0.1.1(May 24, 2021)

  • v0.1.0(May 16, 2021)

Owner
Hammerstone
Making tools to make your life easier.
Hammerstone
Execute Laravel Artisan commands via REST APIs and HTTP requests safely.

Artisan Api There might be some times you wanted to execute an Artisan command, but you did not have access to shell or SSH. Here we brought REST API

Alireza 11 Sep 7, 2022
a Laravel package help you to execute more effective databases queries.

Laravel Query Helper Laravel Query Helper was developed for laravel 7.2+ to help you optimizing sql queries, this package will contain all advanced sq

karam mustafa 9 Jul 26, 2022
A nice GUI for Laravel Artisan, ready out of the box, configurable and handy for non-CLI experienced developers.

Artisan UI A nice GUI for Laravel Artisan, ready out of the box, configurable and handy for non-CLI experienced developers. Supported commands must be

Pablo Leone 1 Dec 3, 2021
Barcode generator in PHP that is easy to use, non-bloated and framework independent.

PHP Barcode Generator This is an easy to use, non-bloated, framework independent, barcode generator in PHP. It creates SVG, PNG, JPG and HTML images,

Picqer 1.4k Jan 6, 2023
A Laravel package to retrieve key management from AWS Secrets Manager

A Laravel package to retrieve key management from AWS Secrets Manager Communication via AWS Secrets Manager may incur unnecessary charges. So we devel

null 2 Oct 10, 2022
A non-blocking stream abstraction for PHP based on Amp.

amphp/byte-stream is a stream abstraction to make working with non-blocking I/O simple. Installation This package can be installed as a Composer depen

Amp 317 Dec 22, 2022
Collection of agnostic PHP Functions and helpers with zero dependencies to use as foundation in packages and other project

Collection of agnostic PHP Functions and helpers This package provides a lot of very usefull agnostic helpers to use as foundation in packages and oth

padosoft 54 Sep 21, 2022
Laravel package to work with geospatial data types and functions.

Laravel Spatial Laravel package to work with geospatial data types and functions. For now it supports only MySql Spatial Data Types and Functions. Sup

Tarfin 47 Oct 3, 2022
webtrees module: enhanced clippings cart with more functions to add records to the clippings cart and to start actions on these records

webtrees module hh_clippings_cart_enhanced !!! This is an alpha version! Do not use it in a productive webtrees system! !!! This webtrees custom modul

Hermann Hartenthaler 1 Sep 18, 2022
This package provides new helper functions that take care of handling all the translation hassle and do it for you.

Laravel Translate Message ?? This package provides new helper functions that take care of handling all the translation hassle and do it for you. Insta

Basel Rabia 17 Feb 8, 2022
Laravel basic Functions, eloquent cruds, query filters, constants

Emmanuelpcg laravel-basics Description Package with basic starter features for Laravel. Install If Builder Constants Install composer require emmanuel

Emmanuel Pereira Pires 3 Jan 1, 2022
A collection of helper functions that I use across my projects.

A collection of helper functions that I use across my projects. This package includes some of the helper functions that I tend to use in all of my pro

Ryan Chandler 33 Oct 18, 2022
Automatically load your helpers in your laravel application.

Laravel AutoHelpers Automatically load your helpers in your laravel application. Installation You can install the package via composer: composer requi

Florian Wartner 6 Jul 26, 2021
Smeify is a Stable Automated Solution for Airtime and Data businesses in Nigeria, this package helps you integrate smeify easily into your laravel application.

Smeify is a Stable Automated Solution for Airtime and Data businesses in Nigeria, this package helps you integrate smeify easily into your laravel application.

Ogundiran Adewale Charles 2 Jul 27, 2022
Laravel package to periodically monitor the health of your server and application.

Laravel package to periodically monitor the health of your server and application. It ships with common checks out of the box and allows you to add your own custom checks too. The packages comes with both console and web interfaces.

Sarfraz Ahmed 170 Dec 13, 2022
Vandar Cashier is a Laravel package that allows you to seamlessly implement IPG and Direct Debit on your application

Vandar Cashier is a Laravel package that provides you with a seamless integration with Vandar services. Take a look at Vandar Documentation for more i

Vandar 11 Dec 14, 2022
Laravel Segment is an opinionated, approach to integrating Segment into your Laravel application.

Laravel Segment Laravel Segment is an opinionated, approach to integrating Segment into your Laravel application. Installation You can install the pac

Octohook 13 May 16, 2022
Jetstrap is a lightweight laravel 8 package that focuses on the VIEW side of Jetstream / Breeze package installed in your Laravel application

A Laravel 8 package to easily switch TailwindCSS resources generated by Laravel Jetstream and Breeze to Bootstrap 4.

null 686 Dec 28, 2022
Laravel Larex lets you translate your whole Laravel application from a single CSV file.

Laravel Larex Translate Laravel Apps from a CSV File Laravel Larex lets you translate your whole Laravel application from a single CSV file. You can i

Luca Patera 68 Dec 12, 2022