PHPackages                             billyranario/prostarterkit - 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. billyranario/prostarterkit

ActiveLibrary

billyranario/prostarterkit
==========================

A Laravel package that provides a set of utilities for rapid development. Typical structure for senior developers to start a new project.

v1.1.3(3mo ago)0257↓100%MITPHPPHP &gt;=7.4

Since Sep 3Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/billyranario/protstarter-kit)[ Packagist](https://packagist.org/packages/billyranario/prostarterkit)[ RSS](/packages/billyranario-prostarterkit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (15)Used By (0)

ProstarterKit by Billy Joel Ranario
===================================

[](#prostarterkit-by-billy-joel-ranario)

Description
-----------

[](#description)

`ProstarterKit` is a Laravel package designed to expedite the initial setup and ongoing development of Laravel projects. It serves as a boilerplate, providing a collection of utilities, helpers, and core functionalities that are commonly used in Laravel applications.

This package includes a robust `BaseRequest` class that provides various methods for input transformation and validation. The package also integrates seamlessly with Data Transfer Objects (DTOs), giving you the flexibility to work with data in an organized manner.

Whether you're building a simple API backend, a complex web application, or anything in between, `ProstarterKit` aims to streamline your development process, enabling you to focus more on business logic and less on boilerplate code.

Requirements
------------

[](#requirements)

- **PHP version:** 7.4 and above
- **Laravel version:** 6.0 and above

Features
--------

[](#features)

- **Input Transformation:** Easily transform request data types with methods like getInputAsString, getInputAsInt, getInputAsFloat, and more.
- **DTO Integration:** Comes with a built-in support for DTOs, allowing for easy mapping of request data to data transfer objects.
- **Highly Customizable:** Designed to be flexible, allowing you to extend or override the built-in functionalities according to your project's needs.
- **Easy to Use:** Just a composer require away from being used in any Laravel application.

Table of Contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
- [Usage Examples](#usage-examples)
- [Available Classes](#available-classes)
    - [BaseRequest](#baserequest)
    - [BaseDto](#basedto)
    - [ResponseHelper](#responsehelper)
    - [ServiceResponse](#serviceresponse)
    - [UserRepositoryInterface](#userrepositoryinterface)
    - [ProstarterKitServiceProvider](#prostarterkitserviceprovider)
- [Helper Classes](#helper-classes)
    - [LoggerHelper](#loggerhelper)
- [Contributing](#contributing)
- [License](#license)

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

[](#installation)

```
composer require billyranario/prostarterkit

php artisan vendor:publish --tag=prostarter-kit
```

Usage Examples
--------------

[](#usage-examples)

Below is a quick example of how you can use `BaseRequest` and `BaseDto` together:

```
use Billyranario\ProstarterKit\App\Http\Requests\BaseRequest;
use Billyranario\ProstarterKit\App\Dtos\BaseDto;

// In your controller
public function index(BaseRequest $request) {
    $baseDto = new BaseDto();
    $baseDto->setPerPage($request->getInputAsInt('perPage'));
    $baseDto->setOrderBy($request->getInputAsString('orderBy'));

    // Your business logic here
}
```

Available Classes
-----------------

[](#available-classes)

### ResponseHelper

[](#responsehelper)

The `ResponseHelper` class provides methods for sending HTTP responses.

#### Usage

[](#usage)

```
use Billyranario\ProstarterKit\App\Core\ResponseHelper;

// Sending JSON data with status code 200
ResponseHelper::json(['message' => 'Hello World']);

// Sending a 200 OK status code
ResponseHelper::ok();

// Sending an empty JSON object with status code 200
ResponseHelper::empty();
```

### ServiceResponse

[](#serviceresponse)

The `ServiceResponse` class encapsulates a standard service response object.

#### Usage

[](#usage-1)

```
use Billyranario\ProstarterKit\App\Core\ServiceResponse;

// Create a success response
$response = ServiceResponse::success('Operation successful', ['data' => 'some_data']);
```

### BaseDto

[](#basedto)

The `BaseDto` class serves as a base data transfer object for handling query parameters like pagination, sorting, etc.

#### Usage

[](#usage-2)

```
use Billyranario\ProstarterKit\App\Dtos\BaseDto;

$baseDto = new BaseDto();
$baseDto->setPerPage(20);
$baseDto->setOrderBy('created_at');
```

### UserRepositoryInterface

[](#userrepositoryinterface)

The `UserRepositoryInterface` serves as the contract for any class that wants to interact with User data storage.

#### Methods

[](#methods)

- `findById(int $id): ?User:` Find a user by ID.
- `findByEmail(string $email): ?User:` Find a user by email.
- `create(array $data): User|bool:` Create a new user.
- `update(array $data, int $id): User|bool:` Update an existing user.
- `delete(int $id): bool|null:` Delete a user by ID.

#### Usage

[](#usage-3)

```
use Billyranario\ProstarterKit\App\Repositories\Contracts\UserRepositoryInterface;

class UserRepository implements UserRepositoryInterface
{
    // implementation here
}
```

### ProstarterKitServiceProvider

[](#prostarterkitserviceprovider)

The `ProstarterKitServiceProvider` class provides the bootstrapping logic for the package.

#### Usage

[](#usage-4)

Usually, you don't need to interact with this class directly. Laravel will automatically register and boot the provider

```
use Billyranario\ProstarterKit\App\Core\ServiceResponse;

// Create a success response
$response = ServiceResponse::success('Operation successful', ['data' => 'some_data']);
```

### BaseRequest

[](#baserequest)

The `BaseRequest` class extends Laravel's `FormRequest` and provides methods for typecasting request inputs. It is commonly used together with DTOs to fill in data.

#### Usage with DTOs

[](#usage-with-dtos)

```
use Billyranario\ProstarterKit\App\Http\Requests\BaseRequest;
use Billyranario\ProstarterKit\App\Dtos\BaseDto;

class MyRequest extends BaseRequest
{
    public function rules()
    {
        return [
            // validation rules
        ];
    }

    public function toDto(): BaseDto
    {
        $baseDto = new BaseDto();
        $baseDto->setPerPage($this->getInputAsInt('perPage'));
        $baseDto->setOrderBy($this->getInputAsString('orderBy'));
        return $baseDto;
    }
}

// Inside a controller method
public function update(MyRequest $request)
{
    $baseDto = $request->toDto();
    // Now you can use $baseDto->getPerPage() or $baseDto->getOrderBy()
}
```

Helper Classes
--------------

[](#helper-classes)

```
use Billyranario\ProstarterKit\App\Helpers;
```

### LoggerHelper

[](#loggerhelper)

The `LoggerHelper` class provides methods for logging messages to the application's log files.

#### Usage

[](#usage-5)

```
use Billyranario\ProstarterKit\App\Helpers\LoggerHelper;

// Log a debug message
LoggerHelper::debug('This is a debug message', ['some_data' => 'some_value']]);

// Log an info message
LoggerHelper::info('This is an info message', ['some_data' => 'some_value']]);

// Log a warning message
LoggerHelper::warning('This is a warning message', ['some_data' => 'some_value']]);

// Log a critical message
LoggerHelper::critical('This is a critical message', ['some_data' => 'some_value']]);

// Log an alert message
LoggerHelper::alert('This is an alert message', ['some_data' => 'some_value']]);

// Log an emergency message
LoggerHelper::emergency('This is an emergency message', ['some_data' => 'some_value']]);

// Log an error message
LoggerHelper::error('This is an error message', ['some_data' => 'some_value']]);

// Log an error message
try {} catch (\Throwable $th)
LoggerHelper::logThrowError($th);
```

Contributing
------------

[](#contributing)

Contributions are welcome. Please submit a PR or open an issue.

License
-------

[](#license)

This package is open-source and licensed under the MIT License.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance82

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity51

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 ~68 days

Recently: every ~221 days

Total

14

Last Release

90d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/61ec9de47de1d1d6f37c01dc5062b79b8301b4664153c312cc58806978002c88?d=identicon)[billyranario](/maintainers/billyranario)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/billyranario-prostarterkit/health.svg)

```
[![Health](https://phpackages.com/badges/billyranario-prostarterkit/health.svg)](https://phpackages.com/packages/billyranario-prostarterkit)
```

###  Alternatives

[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11320.2M21](/packages/anourvalar-eloquent-serialize)[namu/wirechat

A Laravel Livewire messaging app for teams with private chats and group conversations.

54324.5k](/packages/namu-wirechat)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135192.6k5](/packages/statamic-rad-pack-runway)

PHPackages © 2026

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