A Slack Invitator made with Lumen Framework.

Overview

Lumen - Slackin

Join the chat at https://gitter.im/vluzrmos/lumen-slackin

Latest Stable Version Total Downloads License

A Slack Invitator made with Lumen Framework and inspired by rauchg/slackin.

That application uses some of my awesome packages:

Download the source

composer create-project vluzrmos/lumen-slackin

Installation

Copy .env.example to .env and:

Change the APP_KEY to something random string with max 32 characters.

Change the SLACK_TOKEN to the token of your user on slack team, with admin privilegies, you can get it on Slack Web API.

Run

Queue

Start the queue listener:

php artisan queue:listen --timeout=240 1>> /dev/null 2>&1 &

That will start the queue listener in background on *nix computers, to stop that you need to know how to kill a job on your system.

Its hight recomended run the queue on system startup, on linux you should add the following lines to your crontab:

@reboot php /path/to/that/project/artisan queue:listen --timeout=240 1>> /dev/null 2>&1

Scheduled Tasks (Optional)

You may also need to add that command to your cronjob, that will update the users status on every minute:

* * * * *  php /path/to/that/project/artisan schedule:run 1>> /dev/null 2>&1

That will make your queue run in background and ignoring error messages.

Note: If you do not want to use that feature, you just need to set the environment variable SLACK_STATUS_ENABLED to false on your .env file, that will hide the message about users active (online/total) of your team on the homepage:

SLACK_STATUS_ENABLED=false

HTTP Server

Start the http server:

php artisan serve

By default, artisan serve starts on port 8000, if you want to modify it, just starts it by passing --port=NUMBER or just make a VirtualHost on your server (Apache or Nginx) with DocumentRoot on /path/to/that/project/public/ path.

Badge is available

If your need a badge to your slack invitator, just use:

<img src="http://your-domain/badge.svg" />

Example: Laravel Brasil

Multi-Language Support

By default the system will try to detect if the browser language is available on resources/lang, if available will setup. Available languages:

  • English - en
  • French - fr_FR
  • Portuguese Brazil - pt_BR
  • German - de_DE

Mobile Devices

That project uses Twitter Bootstrap 3, and it is compatible on small devices.

Using Lumen Slackin

Your team are using this project? Put your link here:

Note: Consider to send a PR to master branch.

License

DBAD.

Comments
  • Error while accessing the badge

    Error while accessing the badge

    Hi!

    When generating the badge, I get the following error and the Whoops page (on PHP7):

    [error] 25675#25675: *516 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Laravel\Lumen\Exceptions\Handler::report() must be an instance of Exception, instance of Error given, called in /var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php on line 369 and defined in /var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Exceptions/Handler.php:24
    Stack trace:
    #0 /var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php(369): Laravel\Lumen\Exceptions\Handler->report(Object(Error))
    #1 /var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php(321): Laravel\Lumen\Application->handleUncaughtException(Object(Error))
    #2 [internal function]: Laravel\Lumen\Application->Laravel\Lumen\{closure}(Object(Error))
    #3 {main}
      thrown in /var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Exceptions/Handler.php on line 24" while reading response header from upstream, client: 82.226.89.104, server: wallace.scotlandphp.co.uk, request: "GET /badge.svg HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "slack.scotlandphp.co.uk"
    

    I used a try/catch(Throwable) and got the following error:

    Call to undefined function PUGX\Poser\Calculator\imagettfbbox()

    Error {#105
      #message: "Call to undefined function PUGX\Poser\Calculator\imagettfbbox()"
      #code: 0
      #file: "/var/www/lumen-slackin/vendor/badges/poser/src/Calculator/GDTextSizeCalculator.php"
      #line: 33
      -trace: array:37 [
        0 => array:3 [
          "call" => "PUGX\Poser\Calculator\GDTextSizeCalculator->calculateWidth()"
          "file" => "/var/www/lumen-slackin/vendor/badges/poser/src/Render/SvgFlatRender.php:151"
          "args" => array:1 [
            0 => "Scotland PHP"
          ]
        ]
        1 => array:3 [
          "call" => "PUGX\Poser\Render\SvgFlatRender->stringWidth()"
          "file" => "/var/www/lumen-slackin/vendor/badges/poser/src/Render/SvgFlatRender.php:126"
          "args" => array:1 [
            0 => "Scotland PHP"
          ]
        ]
        2 => array:3 [
          "call" => "PUGX\Poser\Render\SvgFlatRender->render()"
          "file" => "/var/www/lumen-slackin/vendor/badges/poser/src/Poser.php:42"
          "args" => array:1 [
            0 => Badge {#120
              -subject: "Scotland PHP"
              -status: "14/148"
              -color: "F1504F"
              -format: "flat"
            }
          ]
        ]
        3 => array:3 [
          "call" => "PUGX\Poser\Poser->generate()"
          "file" => "/var/www/lumen-slackin/vendor/vluzrmos/badge-poser/src/Poser.php:32"
          "args" => array:4 [
            0 => "Scotland PHP"
            1 => "14/148"
            2 => "F1504F"
            3 => "flat"
          ]
        ]
        4 => array:3 [
          "call" => "Vluzrmos\BadgePoser\Poser->generate()"
          "file" => "/var/www/lumen-slackin/app/Services/SlackBadgeService.php:56"
          "args" => array:4 [
            0 => "Scotland PHP"
            1 => "14/148"
            2 => "F1504F"
            3 => "flat"
          ]
        ]
        5 => array:3 [
          "call" => "App\Services\SlackBadgeService->generate()"
          "file" => "/var/www/lumen-slackin/app/Http/Controllers/BadgeController.php:21"
          "args" => array:1 [
            0 => "flat"
          ]
        ]
        6 => array:3 [
          "call" => "App\Http\Controllers\BadgeController->generate()"
          "file" => ""
          "args" => array:2 [
            0 => SlackBadgeService {#129
              #slack: SlackStatusService {#150
                #cache: CacheManager {#139
                  #app: Application {#2 …}
                  #stores: array:1 [
                    "file" => Repository {#149
                      #store: FileStore {#148
                        #files: Filesystem {#24}
                        #directory: "/var/www/lumen-slackin/storage/framework/cache"
                      }
                      #events: Dispatcher {#37
                        #container: Application {#2 …}
                        #listeners: array:1 [
                          "artisan.start" => array:1 [
                            0 => array:1 [
                              0 => Closure {#138
                                class: "Illuminate\Support\ServiceProvider"
                                this: CacheServiceProvider {#133 …}
                                parameters: array:1 [
                                  "$artisan" => []
                                ]
                                use: array:1 [
                                  "$commands" => array:2 [
                                    0 => "command.cache.clear"
                                    1 => "command.cache.table"
                                  ]
                                ]
                                file: "/var/www/lumen-slackin/vendor/illuminate/support/ServiceProvider.php"
                                line: "176 to 178"
                              }
                            ]
                          ]
                        ]
                        #wildcards: []
                        #sorted: array:1 [
                          "cache.hit" => []
                        ]
                        #firing: []
                        #queueResolver: Closure {#38
                          class: "Illuminate\Events\EventServiceProvider"
                          this: EventServiceProvider {#35 …}
                          use: array:1 [
                            "$app" => Application {#2 …}
                          ]
                          file: "/var/www/lumen-slackin/vendor/illuminate/events/EventServiceProvider.php"
                          line: "17 to 19"
                        }
                      }
                      #default: 60
                    }
                  ]
                  #customCreators: []
                }
                #slack: Team {#130
                  #methodsGroup: "team."
                  #api: SlackApi {#140
                    -client: Client {#141
                      -messageFactory: MessageFactory {#143
                        -errorPlugin: HttpError {#144}
                        -redirectPlugin: Redirect {#145}
                        -customOptions: []
                      }
                      -baseUrl: Url {#142
                        -scheme: ""
                        -host: ""
                        -port: null
                        -username: null
                        -password: null
                        -path: ""
                        -fragment: null
                        -query: null
                      }
                      -defaults: array:5 [
                        "allow_redirects" => true
                        "exceptions" => true
                        "decode_content" => true
                        "verify" => false
                        "headers" => array:1 [
                          "User-Agent" => "Guzzle/5.3.0 PHP/7.0.8-0ubuntu0.16.04.3"
                        ]
                      ]
                      -fsm: RequestFsm {#147
                        -handler: StreamHandler {#146
                          -options: []
                          -lastHeaders: null
                        }
                        -mf: MessageFactory {#143}
                        -maxTransitions: 200
                      }
                      -emitter: null
                    }
                    -token: "xoxp-12891922214-12892240103-12895015269-53afa303dc"
                    -url: "https://slack.com/api"
                  }
                  #cache: Repository {#149}
                  #cachePrefix: "__vlz_slackc_"
                }
                #slackRtm: RealTimeMessage {#131
                  #methodsGroup: "rtm."
                  #api: SlackApi {#140}
                  #cache: Repository {#149}
                  #cachePrefix: "__vlz_slackc_"
                }
              }
              #poser: Poser {#124
                -poser: Poser {#151
                  -renders: array:3 [
                    "flat" => SvgFlatRender {#128
                      -textSizeCalculator: GDTextSizeCalculator {#127
                        +"fontPath": "/var/www/lumen-slackin/vendor/badges/poser/src/Calculator/Font/DejaVuSans.ttf"
                      }
                    }
                    "svg" => SvgFlatRender {#128}
                    "plastic" => SvgRender {#126
                      -textSizeCalculator: GDTextSizeCalculator {#125
                        +"fontPath": "/var/www/lumen-slackin/vendor/badges/poser/src/Calculator/Font/DejaVuSans.ttf"
                      }
                    }
                  ]
                }
              }
              #allowedBadgeFormats: array:2 [
                0 => "flat"
                1 => "plastic"
              ]
            }
            1 => Request {#79
              #json: null
              #userResolver: Closure {#80
                class: "Laravel\Lumen\Application"
                this: Application {#2 …}
                file: "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php"
                line: "678 to 680"
              }
              #routeResolver: Closure {#63
                class: "Laravel\Lumen\Application"
                this: Application {#2 …}
                file: "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php"
                line: "680 to 682"
              }
              +attributes: ParameterBag {#81
                #parameters: []
              }
              +request: ParameterBag {#87
                #parameters: []
              }
              +query: ParameterBag {#87}
              +server: ServerBag {#84
                #parameters: array:51 [
                  "USER" => "www-data"
                  "HOME" => "/var/www"
                  "HTTP_COOKIE" => "__cfduid=d56525bd67b791a5cc461164e0e212f441465497044; SS_MID=84309801-5c93-474f-87c6-ef8e73a64517ipaw7zgi"
                  "HTTP_ACCEPT_LANGUAGE" => "en-GB,en;q=0.8,fr;q=0.6"
                  "HTTP_ACCEPT_ENCODING" => "gzip, deflate, sdch, br"
                  "HTTP_DNT" => "1"
                  "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
                  "HTTP_USER_AGENT" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"
                  "HTTP_UPGRADE_INSECURE_REQUESTS" => "1"
                  "HTTP_CACHE_CONTROL" => "max-age=0"
                  "HTTP_CONNECTION" => "keep-alive"
                  "HTTP_HOST" => "slack.scotlandphp.co.uk"
                  "REDIRECT_STATUS" => "200"
                  "SERVER_NAME" => "wallace.scotlandphp.co.uk"
                  "SERVER_PORT" => "443"
                  "SERVER_ADDR" => "149.202.175.239"
                  "REMOTE_PORT" => "53371"
                  "REMOTE_ADDR" => "82.226.89.104"
                  "SERVER_SOFTWARE" => "nginx/1.10.0"
                  "GATEWAY_INTERFACE" => "CGI/1.1"
                  "HTTPS" => "on"
                  "REQUEST_SCHEME" => "https"
                  "SERVER_PROTOCOL" => "HTTP/1.1"
                  "DOCUMENT_ROOT" => "/var/www/lumen-slackin/public"
                  "DOCUMENT_URI" => "/index.php"
                  "REQUEST_URI" => "/badge.svg"
                  "SCRIPT_NAME" => "/index.php"
                  "CONTENT_LENGTH" => ""
                  "CONTENT_TYPE" => ""
                  "REQUEST_METHOD" => "GET"
                  "QUERY_STRING" => ""
                  "SCRIPT_FILENAME" => "/var/www/lumen-slackin/public/index.php"
                  "PATH_INFO" => ""
                  "FCGI_ROLE" => "RESPONDER"
                  "PHP_SELF" => "/index.php"
                  "REQUEST_TIME_FLOAT" => 1476946505.2324
                  "REQUEST_TIME" => 1476946505
                  "APP_ENV" => "production"
                  "APP_DEBUG" => "false"
                  "APP_KEY" => "Sc46SNNd9HtvCpQhf8VfEjhm6sBryjnu"
                  "APP_LOCALE" => "en"
                  "APP_FALLBACK_LOCALE" => "en"
                  "CACHE_DRIVER" => "file"
                  "SESSION_DRIVER" => "file"
                  "QUEUE_DRIVER" => "sync"
                  "SLACK_TOKEN" => "xoxp-12891922214-12892240103-12895015269-53afa303dc"
                  "SLACK_STATUS_ENABLED" => "true"
                  "LANG_DETECTOR_AUTODETECT" => "true"
                  "LANG_DETECTOR_DRIVER" => "browser"
                  "LANG_DETECTOR_SEGMENT" => ""
                  "LANG_DETECTOR_LANGUAGES" => "en,pt_BR,de_DE"
                ]
              }
              +files: FileBag {#83
                #parameters: []
              }
              +cookies: ParameterBag {#82
                #parameters: array:2 [
                  "__cfduid" => null
                  "SS_MID" => null
                ]
              }
              +headers: HeaderBag {#85
                #headers: array:12 [
                  "cookie" => array:1 [
                    0 => "__cfduid=d56525bd67b791a5cc461164e0e212f441465497044; SS_MID=84309801-5c93-474f-87c6-ef8e73a64517ipaw7zgi"
                  ]
                  "accept-language" => array:1 [
                    0 => "en-GB,en;q=0.8,fr;q=0.6"
                  ]
                  "accept-encoding" => array:1 [
                    0 => "gzip, deflate, sdch, br"
                  ]
                  "dnt" => array:1 [
                    0 => "1"
                  ]
                  "accept" => array:1 [
                    0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
                  ]
                  "user-agent" => array:1 [
                    0 => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"
                  ]
                  "upgrade-insecure-requests" => array:1 [
                    0 => "1"
                  ]
                  "cache-control" => array:1 [
                    0 => "max-age=0"
                  ]
                  "connection" => array:1 [
                    0 => "keep-alive"
                  ]
                  "host" => array:1 [
                    0 => "slack.scotlandphp.co.uk"
                  ]
                  "content-length" => array:1 [
                    0 => ""
                  ]
                  "content-type" => array:1 [
                    0 => ""
                  ]
                ]
                #cacheControl: array:1 [
                  "max-age" => "0"
                ]
              }
              #content: null
              #languages: array:3 [
                0 => "en_GB"
                1 => "en"
                2 => "fr"
              ]
              #charsets: null
              #encodings: null
              #acceptableContentTypes: null
              #pathInfo: null
              #requestUri: null
              #baseUrl: null
              #basePath: null
              #method: "GET"
              #format: null
              #session: Store {#88
                #id: "0e554e36ef299a84db7399b643bcbf5770a9507e"
                #name: "laravel_session"
                #attributes: array:1 [
                  "_token" => "PoaDrcZbTOIVIWXuPFI5AuZp9GqnpaNFWBcuhoL1"
                ]
                #bags: []
                #metaBag: MetadataBag {#89
                  -name: "__metadata"
                  -storageKey: "_sf2_meta"
                  #meta: &12 array:3 [
                    "u" => 1476946505
                    "c" => 1476946505
                    "l" => "0"
                  ]
                  -lastUsed: 1476946505
                  -updateThreshold: 0
                }
                #bagData: array:1 [
                  "_sf2_meta" => &12 array:3 [&12]
                ]
                #handler: FileSessionHandler {#91
                  #files: Filesystem {#24}
                  #path: "/var/www/lumen-slackin/storage/framework/sessions"
                }
                #started: true
              }
              #locale: null
              #defaultLocale: "en"
            }
          ]
        ]
        7 => array:3 [
          "call" => "call_user_func_array()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/container/Container.php:502"
          "args" => array:2 [
            0 => array:2 [
              0 => BadgeController {#99
                #middleware: []
              }
              1 => "generate"
            ]
            1 => array:2 [
              0 => SlackBadgeService {#129}
              1 => Request {#79}
            ]
          ]
        ]
        8 => array:3 [
          "call" => "Illuminate\Container\Container->call()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1348"
          "args" => array:2 [
            0 => array:2 [
              0 => BadgeController {#99}
              1 => "generate"
            ]
            1 => []
          ]
        ]
        9 => array:3 [
          "call" => "Laravel\Lumen\Application->callControllerCallable()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1312"
          "args" => array:2 [
            0 => array:2 [
              0 => BadgeController {#99}
              1 => "generate"
            ]
            1 => []
          ]
        ]
        10 => array:3 [
          "call" => "Laravel\Lumen\Application->callLumenController()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1284"
          "args" => array:3 [
            0 => BadgeController {#99}
            1 => "generate"
            2 => array:3 [
              0 => true
              1 => array:1 [
                "uses" => "App\Http\Controllers\BadgeController@generate"
              ]
              2 => []
            ]
          ]
        ]
        11 => array:3 [
          "call" => "Laravel\Lumen\Application->callControllerAction()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1252"
          "args" => array:1 [
            0 => array:3 [
              0 => true
              1 => array:1 [
                "uses" => "App\Http\Controllers\BadgeController@generate"
              ]
              2 => []
            ]
          ]
        ]
        12 => array:3 [
          "call" => "Laravel\Lumen\Application->callActionOnArrayBasedRoute()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1237"
          "args" => array:1 [
            0 => array:3 [
              0 => true
              1 => array:1 [
                "uses" => "App\Http\Controllers\BadgeController@generate"
              ]
              2 => []
            ]
          ]
        ]
        13 => array:3 [
          "call" => "Laravel\Lumen\Application->handleFoundRoute()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1158"
          "args" => array:1 [
            0 => array:3 [
              0 => true
              1 => array:1 [
                "uses" => "App\Http\Controllers\BadgeController@generate"
              ]
              2 => []
            ]
          ]
        ]
        14 => array:3 [
          "call" => "Laravel\Lumen\Application->Laravel\Lumen\{closure}()"
          "file" => ""
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        15 => array:3 [
          "call" => "call_user_func()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:139"
          "args" => array:2 [
            0 => Closure {#75
              class: "Laravel\Lumen\Application"
              this: Application {#2 …}
              use: array:2 [
                "$method" => "GET"
                "$pathInfo" => "/badge.svg"
              ]
              file: "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php"
              line: "1156 to 1164"
            }
            1 => Request {#79}
          ]
        ]
        16 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Http/Middleware/VerifyCsrfToken.php:42"
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        17 => array:3 [
          "call" => "Laravel\Lumen\Http\Middleware\VerifyCsrfToken->handle()"
          "file" => ""
          "args" => array:2 [
            0 => Request {#79}
            1 => Closure {#66
              class: "Illuminate\Pipeline\Pipeline"
              this: Pipeline {#78 …}
              parameters: array:1 [
                "$passable" => []
              ]
              use: array:1 [
                "$destination" => Closure {#75}
              ]
              file: "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php"
              line: "138 to 140"
            }
          ]
        ]
        18 => array:3 [
          "call" => "call_user_func_array()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:124"
          "args" => array:2 [
            0 => array:2 [
              0 => VerifyCsrfToken {#119
                #encrypter: Encrypter {#94
                  #cipher: "AES-256-CBC"
                  #key: "Sc46SNNd9HtvCpQhf8VfEjhm6sBryjnu"
                }
              }
              1 => "handle"
            ]
            1 => array:2 [
              0 => Request {#79}
              1 => Closure {#66}
            ]
          ]
        ]
        19 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/view/Middleware/ShareErrorsFromSession.php:54"
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        20 => array:3 [
          "call" => "Illuminate\View\Middleware\ShareErrorsFromSession->handle()"
          "file" => ""
          "args" => array:2 [
            0 => Request {#79}
            1 => Closure {#77
              class: "Illuminate\Pipeline\Pipeline"
              this: Pipeline {#78 …}
              parameters: array:1 [
                "$passable" => []
              ]
              use: array:2 [
                "$stack" => Closure {#66}
                "$pipe" => "Laravel\Lumen\Http\Middleware\VerifyCsrfToken"
              ]
              file: "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php"
              line: "114 to 126"
            }
          ]
        ]
        21 => array:3 [
          "call" => "call_user_func_array()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:124"
          "args" => array:2 [
            0 => array:2 [
              0 => ShareErrorsFromSession {#107
                #view: Factory {#118
                  #engines: EngineResolver {#113
                    #resolvers: array:2 [
                      "php" => Closure {#114
                        class: "Illuminate\View\ViewServiceProvider"
                        this: ViewServiceProvider {#109 …}
                        file: "/var/www/lumen-slackin/vendor/illuminate/view/ViewServiceProvider.php"
                        line: "56 to 56"
                      }
                      "blade" => Closure {#116
                        class: "Illuminate\View\ViewServiceProvider"
                        this: ViewServiceProvider {#109 …}
                        use: array:1 [
                          "$app" => Application {#2 …}
                        ]
                        file: "/var/www/lumen-slackin/vendor/illuminate/view/ViewServiceProvider.php"
                        line: "78 to 80"
                      }
                    ]
                    #resolved: []
                  }
                  #finder: FileViewFinder {#117
                    #files: Filesystem {#24}
                    #paths: array:1 [
                      0 => "/var/www/lumen-slackin/resources/views"
                    ]
                    #views: []
                    #hints: []
                    #extensions: array:2 [
                      0 => "blade.php"
                      1 => "php"
                    ]
                  }
                  #events: Dispatcher {#37}
                  #container: Application {#2 …}
                  #shared: array:3 [
                    "__env" => Factory {#118}
                    "app" => Application {#2 …}
                    "errors" => ViewErrorBag {#106
                      #bags: []
                    }
                  ]
                  #aliases: []
                  #names: []
                  #extensions: array:2 [
                    "blade.php" => "blade"
                    "php" => "php"
                  ]
                  #composers: []
                  #sections: []
                  #sectionStack: []
                  #renderCount: 0
                }
              }
              1 => "handle"
            ]
            1 => array:2 [
              0 => Request {#79}
              1 => Closure {#77}
            ]
          ]
        ]
        22 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/session/Middleware/StartSession.php:62"
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        23 => array:3 [
          "call" => "Illuminate\Session\Middleware\StartSession->handle()"
          "file" => ""
          "args" => array:2 [
            0 => Request {#79}
            1 => Closure {#73
              class: "Illuminate\Pipeline\Pipeline"
              this: Pipeline {#78 …}
              parameters: array:1 [
                "$passable" => []
              ]
              use: array:2 [
                "$stack" => Closure {#77}
                "$pipe" => "Illuminate\View\Middleware\ShareErrorsFromSession"
              ]
              file: "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php"
              line: "114 to 126"
            }
          ]
        ]
        24 => array:3 [
          "call" => "call_user_func_array()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:124"
          "args" => array:2 [
            0 => array:2 [
              0 => StartSession {#95
                #manager: SessionManager {#104
                  #app: Application {#2 …}
                  #customCreators: []
                  #drivers: array:1 [
                    "file" => Store {#88}
                  ]
                }
                #sessionHandled: true
              }
              1 => "handle"
            ]
            1 => array:2 [
              0 => Request {#79}
              1 => Closure {#73}
            ]
          ]
        ]
        25 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/cookie/Middleware/AddQueuedCookiesToResponse.php:37"
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        26 => array:3 [
          "call" => "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()"
          "file" => ""
          "args" => array:2 [
            0 => Request {#79}
            1 => Closure {#72
              class: "Illuminate\Pipeline\Pipeline"
              this: Pipeline {#78 …}
              parameters: array:1 [
                "$passable" => []
              ]
              use: array:2 [
                "$stack" => Closure {#73}
                "$pipe" => "Illuminate\Session\Middleware\StartSession"
              ]
              file: "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php"
              line: "114 to 126"
            }
          ]
        ]
        27 => array:3 [
          "call" => "call_user_func_array()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:124"
          "args" => array:2 [
            0 => array:2 [
              0 => AddQueuedCookiesToResponse {#71
                #cookies: CookieJar {#98
                  #path: "/"
                  #domain: null
                  #queued: []
                }
              }
              1 => "handle"
            ]
            1 => array:2 [
              0 => Request {#79}
              1 => Closure {#72}
            ]
          ]
        ]
        28 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/cookie/Middleware/EncryptCookies.php:59"
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        29 => array:3 [
          "call" => "Illuminate\Cookie\Middleware\EncryptCookies->handle()"
          "file" => ""
          "args" => array:2 [
            0 => Request {#79}
            1 => Closure {#74
              class: "Illuminate\Pipeline\Pipeline"
              this: Pipeline {#78 …}
              parameters: array:1 [
                "$passable" => []
              ]
              use: array:2 [
                "$stack" => Closure {#72}
                "$pipe" => "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
              ]
              file: "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php"
              line: "114 to 126"
            }
          ]
        ]
        30 => array:3 [
          "call" => "call_user_func_array()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:124"
          "args" => array:2 [
            0 => array:2 [
              0 => EncryptCookies {#90
                #encrypter: Encrypter {#94}
                #except: []
              }
              1 => "handle"
            ]
            1 => array:2 [
              0 => Request {#79}
              1 => Closure {#74}
            ]
          ]
        ]
        31 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()"
          "file" => ""
          "args" => array:1 [
            0 => Request {#79}
          ]
        ]
        32 => array:3 [
          "call" => "call_user_func()"
          "file" => "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php:102"
          "args" => array:2 [
            0 => Closure {#86
              class: "Illuminate\Pipeline\Pipeline"
              this: Pipeline {#78 …}
              parameters: array:1 [
                "$passable" => []
              ]
              use: array:2 [
                "$stack" => Closure {#74}
                "$pipe" => "Illuminate\Cookie\Middleware\EncryptCookies"
              ]
              file: "/var/www/lumen-slackin/vendor/illuminate/pipeline/Pipeline.php"
              line: "114 to 126"
            }
            1 => Request {#79}
          ]
        ]
        33 => array:3 [
          "call" => "Illuminate\Pipeline\Pipeline->then()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1387"
          "args" => array:1 [
            0 => Closure {#75}
          ]
        ]
        34 => array:3 [
          "call" => "Laravel\Lumen\Application->sendThroughPipeline()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1164"
          "args" => array:2 [
            0 => array:5 [
              0 => "Illuminate\Cookie\Middleware\EncryptCookies"
              1 => "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
              2 => "Illuminate\Session\Middleware\StartSession"
              3 => "Illuminate\View\Middleware\ShareErrorsFromSession"
              4 => "Laravel\Lumen\Http\Middleware\VerifyCsrfToken"
            ]
            1 => Closure {#75}
          ]
        ]
        35 => array:3 [
          "call" => "Laravel\Lumen\Application->dispatch()"
          "file" => "/var/www/lumen-slackin/vendor/laravel/lumen-framework/src/Application.php:1104"
          "args" => array:1 [
            0 => null
          ]
        ]
        36 => array:3 [
          "call" => "Laravel\Lumen\Application->run()"
          "file" => "/var/www/lumen-slackin/public/index.php:28"
          "args" => []
        ]
      ]
    }
    

    Turns out gd was missing from my server. The dependency on gd is not made explicit in the composer.json file.

    opened by tdutrion 0
  • Add ScotlandPHP to the list of projects using lumen-slackin

    Add ScotlandPHP to the list of projects using lumen-slackin

    Hi there!

    We just discovered this project, and as a PHP community it is the obvious choice for us to migrate and help with this project's evolutions if possible.

    Thanks for your work!

    opened by tdutrion 0
  • Possibility to resend invitation?

    Possibility to resend invitation?

    If I'm not mistaken this only sends the invitation on first filling out of the form. The second time, no more emails can be received. Is there a possibility that we could keep sending email if they fill in the form until they have successfully registered in a Slack Team?

    enhancement help wanted 
    opened by webriq 0
  • Add a Gitter chat badge to readme.md

    Add a Gitter chat badge to readme.md

    vluzrmos/lumen-slackin now has a Chat Room on Gitter

    @vluzrmos has just created a chat room. You can visit it here: https://gitter.im/vluzrmos/lumen-slackin.

    This pull-request adds this badge to your readme.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

    opened by gitter-badger 0
  • Fixing username for invited users

    Fixing username for invited users

    I am using your great program to invite members to our slack team. One new member reported, that the name they provided into the form is used as the first name in slack. I also found the code which sets this value: https://github.com/vluzrmos/lumen-slackin/blob/master/app/Services/SlackTeamService.php#L50

    In the form validation you enforce the user to enter two word: https://github.com/vluzrmos/lumen-slackin/blob/master/app/Services/SlackTeamService.php#L50

    I would suggest that you only ask for a username, only for the first name or add another separate field for the last name (so the form would than have three fields).

    enhancement 
    opened by 2ndkauboy 2
Releases(v2.6.6)
Owner
Vagner Luz do Carmo
PHP | Node | Golang Developer.
Vagner Luz do Carmo
The Laravel Boilerplate Project - https://laravel-boilerplate.com - For Slack access, visit:

Laravel Boilerplate (Current: Laravel 8.*) (Demo) Demo Credentials Admin: [email protected] Password: secret User: [email protected] Password: secret Offici

Anthony Rappa 5.4k Jan 7, 2023
A dynamic table component for Laravel Livewire - For Slack access, visit:

A dynamic Laravel Livewire component for data tables. Bootstrap 4 Demo | Bootstrap 5 Demo | Tailwind Demo | Demo Repository Installation You can insta

Anthony Rappa 1.3k Jan 1, 2023
LERN is a Laravel package that will record exceptions into a database and will notify you via Email, Pushover or Slack.

LERN is a Laravel package that will record exceptions into a database and will notify you via Email, Pushover or Slack.

Tyler Arbon 437 Nov 17, 2022
🐍 Web application made in PHP with Laravel where you can interact via API with my Snake game which is made in Python

Snake web application Project of the web application where you can interact via API with Snake game which is available to download on it. Application

Maciek Iwaniuk 1 Nov 26, 2022
Teste dos mano do pay lá ft. Lumen Framework

Teste dos caras lá pay Avisos antes de começar Crie um repositório no seu GitHub sem citar nada relacionado a empresa dos cara lá. (CHECK) Faça seus c

Daniel Reis 24 Nov 7, 2022
Simple Video is a automated H264 encryption system built on Lumen Laravel Framework

Simple Video is a automated H264 encryption system built on Lumen Laravel Framework

Azril Nazli Alias 4 Oct 5, 2022
File manager module for the Lumen PHP framework.

Lumen File Manager File manager module for the Lumen PHP framework. Please note that this module is still under active development. NOTE: Branch 5.1 i

Digia 40 Aug 20, 2022
📦 Adds Laravel Packages Support to Lumen and Vendor Publish Artisan Command.

Laravel Package Support for Lumen: Makes Lumen compatible with Laravel Packages. You can use any Laravel Packages in Lumen by installing Larasupport Package.

Irfaq Syed 127 Dec 17, 2022
A collection of generators for Lumen and Laravel 5.

Lumen generators A collection of generators for Lumen and Laravel 5. Contents Why ? Installation Quick Usage Detailed Usage Model Generator Migration

Amine Ben hammou 349 Mar 24, 2022
CORS (Cross-Origin Resource Sharing) support for Laravel and Lumen

Description This package adds Cross-Origin Resource Sharing (CORS) support to your Laravel application. The package is based on Framework agnostic (PS

null 48 Feb 1, 2020
A Laravel and Lumen Badges Generator

Laravel and Lumen Badge Generator That package is a easy wrapper to Badges/Poser. #Installing composer require vluzrmos/laravel-badge-poser Laravel co

Vagner Luz do Carmo 6 Jun 10, 2020
Provides a Eloquent query builder for Laravel or Lumen

This package provides an advanced filter for Laravel or Lumen model based on incoming requets.

M.Fouladgar 484 Jan 4, 2023
Stripe integration in Lumen

Lumen Boilerplate/Starter App for Stripe payment processing Core Features return all available subscription plans create a subscription check subscrip

George Basteas 3 Jan 3, 2022
Chinese to Pinyin translator for Laravel5 / Lumen based on overtrue/pinyin.

Laravel-pinyin Chinese to Pinyin translator for Laravel5 / Lumen based on overtrue/pinyin. Install composer require "overtrue/laravel-pinyin:~4.0" For

安正超 504 Nov 10, 2022
Laravel and Lumen Auto Hard Deleter

Laravel Auto Hard Deleter This package deletes soft deleted rows automatically after a time interval that you define. For Laravel and Lumen 6, 7, 8 In

Siavash Bamshadnia 38 Dec 28, 2022
Laravel Lumen service provider for Understand.io

The service provider is deprecated - it does not support error grouping. Laravel Lumen service provider for Understand.io You may also be interested i

null 6 May 30, 2019
🔐 JSON Web Token Authentication for Laravel & Lumen

Documentation Documentation for 1.* here For version 0.5.* See the WIKI for documentation. Supported by Auth0 If you want to easily add secure authent

Sean Tymon 10.7k Jan 3, 2023
Lumen rest api demo with Dingo/Api, JWT, CORS, PHPUNIT

lumen-api-demo 这是一个比较完整用 lumen 5.7 写的的 REST API 例子。使用了 dingo/api ,jwt 实现登录,功能上很简单,登录,注册,发帖,评论,单元测试(正在补充)。 lumen5.x 请看对应的分支 有需要随时联系我 lumen/laravel/rest

Yu Li 859 Oct 25, 2022
Laravel-FCM is an easy to use package working with both Laravel and Lumen for sending push notification with Firebase Cloud Messaging (FCM).

Laravel-FCM Introduction Laravel-FCM is an easy to use package working with both Laravel and Lumen for sending push notification with Firebase Cloud M

Rahul Thapa 2 Oct 16, 2022