PHPackages                             amostajo/perfex-crm - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. amostajo/perfex-crm

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

amostajo/perfex-crm
===================

Perfex CRM library to customize hooks.

v1.0.0(3mo ago)00MITPHPCI failing

Since Feb 11Pushed 3mo agoCompare

[ Source](https://github.com/amostajo/perfex-crm)[ Packagist](https://packagist.org/packages/amostajo/perfex-crm)[ RSS](/packages/amostajo-perfex-crm/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Perfex CRM customization
========================

[](#perfex-crm-customization)

This repository shows how to customize Perfex CRM back-end and front-end.

**NOTE:** The CRM codebase is NOT IN here.

Customizations
--------------

[](#customizations)

### Back-end

[](#back-end)

Back-end customizations can be done using [Perfex CRM hooks](https://help.perfexcrm.com/action-hooks/), which is an event-driven customization system similar to the one created by [WordPress](https://developer.wordpress.org/plugins/hooks/).

Inside the `/perfexcrm` folder, this project has a replica of the `my_functions_helper.php` file with custom hooks created.

**SIDE NOTE:**My approach to back-end customizations implements dependency injection and ORM to avoid direct database queries and to make the code more maintainable.

```
use Amostajo\PerfexCRM\Samples\ClientHooks;
// Bootstrap composer
require '../vendor/autoload.php';

// Register hooks
ClientHooks::register();
```

### In your project

[](#in-your-project)

You can reuse the base `Hook` class in your project, by installing this package:

```
composer require amostajo/perfex-crm
```

Your hook registation class:

```
use Amostajo\PerfexCRM\Hook;
use Amostajo\PerfexCRM\Traits\Registerable;

class MyHooks extends Hook
{
    use Registerable;

    public function init()
    {
        hooks()->add_action('hook_name', [$this, 'callback_method']);
    }

    public function callback_method($args)
    {
        // Your code here
    }
}
```

Then in your `my_functions_helper.php` file, you can register your hooks:

```
// Bootstrap composer
require __DIR__ . '/../vendor/autoload.php';

MyHooks::register();
```

#### Test

[](#test)

First, you will need to install composer dependencies:

```
composer install
```

You can review the hook registration and test with PHPUnit.

```
./vendor/bin/phpunit
```

### Front-end

[](#front-end)

Front-end can be customized through a custom [Perfex CRM theme](https://help.perfexcrm.com/customers-templates/) or [custom CSS](https://help.perfexcrm.com/applying-custom-css-styles/).

#### Custom CSS

[](#custom-css)

In this project, we have a custom CSS file that changes the background color of the CRM.

Inside the `/perfexcrm` folder, there is a `custom.css` file that is loaded in the CRM (real file is `assets/css/custom.css`).

The source file is located at `assets/scss/custom.scss`, which is compiled to `perfexcrm/custom.css`.

**SIDE NOTE**My approach to front-end implements vite to bundle the SCSS file and make it easier to maintain.

#### Compile

[](#compile)

First, you will need to install npm dependencies:

```
npm install
```

Finally compile:

```
npm run build
```

#### Custom theme

[](#custom-theme)

Custom theming requires template replication. Ideally we want to bundle our related assets using Vite or Webpack.

Conclusion
----------

[](#conclusion)

This repository shows how to customize Perfex CRM back-end and front-end using hooks and custom CSS. The back-end customizations are done using an event-driven system, while the front-end customizations are done through a custom CSS file. This approach allows for maintainable and scalable customizations without modifying the core codebase of Perfex CRM.

Since this CRM was design mimicing WordPress customization engine, it is a great choice for WordPress developers.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance82

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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

Unknown

Total

1

Last Release

96d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f2cdad4e398292477582ba8ec4ab02a96fa645cd620518a5bcf697cd788c96c3?d=identicon)[amostajo](/maintainers/amostajo)

---

Top Contributors

[![amostajo](https://avatars.githubusercontent.com/u/1645908?v=4)](https://github.com/amostajo "amostajo (7 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/amostajo-perfex-crm/health.svg)

```
[![Health](https://phpackages.com/badges/amostajo-perfex-crm/health.svg)](https://phpackages.com/packages/amostajo-perfex-crm)
```

###  Alternatives

[adamhopkinson/laravel-model-hash

A trait which automatically generates a unique hash per model instance

2318.7k](/packages/adamhopkinson-laravel-model-hash)

PHPackages © 2026

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