PHPackages                             wyxos/shift-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. wyxos/shift-php

ActiveLibrary[API Development](/categories/api)

wyxos/shift-php
===============

Laravel SDK to integrate and sync tasks with the SHIFT Dashboard.

1.1.38(1mo ago)0127MITPHP

Since May 5Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/wyxos/shift-php)[ Packagist](https://packagist.org/packages/wyxos/shift-php)[ RSS](/packages/wyxos-shift-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (95)Used By (0)

SHIFT php for Laravel
=====================

[](#shift-php-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/1573d61abc37f3f2d202737bb1aece28149f9fd7c16791a96e14cc7f14c05239/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7779786f732f73686966742d7068702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/wyxos/shift-php)[![MIT Licensed](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)

A Laravel package for submitting tasks to the SHIFT Dashboard from within your application. It provides a Vue-based UI component plus API endpoints to send issue reports or feature requests directly to your SHIFT project.

Installation
------------

[](#installation)

```
composer require wyxos/shift-php
php artisan install:shift
```

By default, `install:shift` now uses the SHIFT browser/device verification flow:

- Validates `APP_ENV` and `APP_URL`
- Creates a SHIFT install session
- Prints the verification URL and short code for browser approval
- Polls until the session is approved or expires
- Loads the projects you can install into and lets you choose one, or create a new standalone SHIFT project if none exist yet
- Finalizes the install and writes `SHIFT_TOKEN` / `SHIFT_PROJECT`
- Registers the current app environment for external collaborator lookup
- Scaffolds `App\Services\ShiftCollaboratorResolver` when it does not exist
- Publishes frontend and config files

If `SHIFT_TOKEN` and `SHIFT_PROJECT` are already configured, the installer keeps using those values and skips browser verification.

If you need the old raw-token path, run:

```
php artisan install:shift --manual
```

Configuration
-------------

[](#configuration)

Add your SHIFT credentials to `.env`:

```
SHIFT_TOKEN=your-api-token
SHIFT_PROJECT=your-project-token
SHIFT_URL=https://shift.wyxos.com
SHIFT_COLLABORATORS_RESOLVER=App\Services\ShiftCollaboratorResolver
```

Optional: publish config to customize routes and middleware.

```
php artisan vendor:publish --tag=shift
```

`config/shift.php` example:

```
return [
    'token' => env('SHIFT_TOKEN'),
    'project' => env('SHIFT_PROJECT'),
    'url' => env('SHIFT_URL', 'https://shift.wyxos.com'),
    'routes' => [
        'prefix' => 'shift',
        'middleware' => ['web', 'auth'],
    ],
];
```

Usage
-----

[](#usage)

### UI Dashboard

[](#ui-dashboard)

After installing, the task submission UI is available at:

```
/shift

```

This route uses the default `web` and `auth` middleware unless you customize it.

### API Endpoints

[](#api-endpoints)

All endpoints are prefixed by default with `/shift/api` and require authentication:

- `GET /shift/api/tasks` - List tasks
- `POST /shift/api/tasks` - Create a new task
- `GET /shift/api/tasks/{id}` - View a task
- `PUT /shift/api/tasks/{id}` - Update a task

You can interact with them using Laravel's `Http` facade:

```
$response = Http::post('/shift/api/tasks', [
    'title' => 'Bug in report form',
    'description' => 'Submit button does not work on mobile.',
]);
```

When tasks are submitted, the package automatically includes:

- The authenticated user's name, email, and ID
- The current environment and application URL

### External Collaborators

[](#external-collaborators)

`install:shift` registers the current consumer environment with SHIFT, and the package exposes:

- `GET /shift/api/collaborators/external`

SHIFT calls this endpoint using the project token to retrieve eligible external users for the selected project environment.

The generated resolver is intentionally permissive only for `APP_ENV=local`. For every other environment it returns no users until you replace the TODO stub with your app-specific rules.

Testing
-------

[](#testing)

Run a test submission with:

```
php artisan shift:test
```

This creates a dummy task to verify setup.

Artisan Commands
----------------

[](#artisan-commands)

- `install:shift` - Interactive installation
- `install:shift --manual` - Manual raw token and project entry
- `shift:test` - Submit a test task
- `shift:publish` - Manually publish package assets

License
-------

[](#license)

MIT [Wyxos](https://wyxos.com). See [LICENSE.md](LICENSE.md) for details.

###  Health Score

44

—

FairBetter than 91% of packages

Maintenance97

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

94

Last Release

55d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3bebc39f4ccdb2e2a6de208e3b5ff4722b8a6c9a2ff20ba84ebf74a96cca84bf?d=identicon)[wyxos](/maintainers/wyxos)

### Embed Badge

![Health badge](/badges/wyxos-shift-php/health.svg)

```
[![Health](https://phpackages.com/badges/wyxos-shift-php/health.svg)](https://phpackages.com/packages/wyxos-shift-php)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M452](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
