PHPackages                             chinpei215/cakephp-intlless - 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. chinpei215/cakephp-intlless

ActiveCakephp-plugin[Utility &amp; Helpers](/categories/utility)

chinpei215/cakephp-intlless
===========================

Intlless plugin for CakePHP

1.0.2(8y ago)1212.4k↓33.3%1PHPPHP &gt;=5.4.16

Since Sep 2Pushed 8y ago1 watchersCompare

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

READMEChangelog (5)Dependencies (2)Versions (7)Used By (0)

[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.txt)

Intlless plugin for CakePHP
===========================

[](#intlless-plugin-for-cakephp)

Intlless plugin is a plugin for CakePHP 3.x, which allows your application to work *relatively* well without intl extension.

Read this in other languages: **English**, [日本語](README.ja.md)

Installing CakePHP3
-------------------

[](#installing-cakephp3)

If you don't have intl installed, you might have trouble installing CakePHP3 itself. You can install it with zip file, or with [composer](http://getcomposer.org) by changing configuration.

### Installing with zip file

[](#installing-with-zip-file)

Download a [release of CakePHP](https://github.com/cakephp/cakephp/releases) (cakephp-3-x-y.zip), and extract it. Set suitable permissions on your **logs** directory, **tmp** directory and its subdirectories.

### Installing with composer

[](#installing-with-composer)

Execute the following command to pretend you have intl extension.

```
composer config --global platform.ext-intl 0.0.0

```

After that, you can execute `create-project`.

```
composer create-project --prefer-dist cakephp/app my_app_name

```

---

Installing Intlless plugin
--------------------------

[](#installing-intlless-plugin)

After installing CakePHP3, let's install Intlless plugin.

### Installing with zip file

[](#installing-with-zip-file-1)

Download a [release of Intlless plugin](https://github.com/chinpei215/cakephp-intlless/releases) (Source code). After extracting it, put it into your **plugins** directory, as "**Intlless**".

### Installing with git

[](#installing-with-git)

If you want to install with [git](https://git-scm.com/), execute the following command in your **plugins** directory.

```
git clone https://github.com/chinpei215/cakephp-intlless.git Intlless

```

### Installing with composer

[](#installing-with-composer-1)

Execute the following command if you have not done it yet.

```
composer config --global platform.ext-intl 0.0.0

```

After that, you can install the plugin by the following command.

```
composer require --prefer-dist chinpei215/cakephp-intlless

```

---

Setting up Intlless plugin
--------------------------

[](#setting-up-intlless-plugin)

Once you put this plugin, you need to load it in your **config/bootstrap.php**, but it would be better to do it near the front part of the file as much as possible. Because it is necessary to replace `Cake\I18n`-namespaced classes before the original classes loaded. Normally, it is best to do it just after loading **config/app.php**.

```
try {
    Configure::config('default', new PhpConfig());
    Configure::load('app', 'default', false);
} catch (\Exception $e) {
    exit($e->getMessage() . "\n");
}

//Configure::load('app_local', 'default');

// Here is the best place to load
Plugin::load('Intlless', ['bootstrap' => true, 'autoload' => true]);
```

Note that the `boostrap` option and the `autoload` option are set to true in the above example. Since Intlless plugin needs to execute bootstrapping to replace `Cake\I18n`-namespaced classes, and if you have installed it with zip, it is necessary to use the autoloading feature of CakePHP.

Even if you have installed it with composer, make sure to set the `bootstrap` option to true.

In addition, you need to modify some code in your application. First, find a line where an error is thrown if intl extension is not loaded, and comment it out.

```
if (!extension_loaded('intl')) {
    // Comment out this statement
    // trigger_error('You must enable the intl extension to use CakePHP.', E_USER_ERROR);
}
```

If `useLocaleParser()` call is found in your **config/bootstrap.php**, also comment it out. Intlless plugin doesn't support the feature.

```
// Comment them out
// Type::build('date')->useLocaleParser();
// Type::build('datetime')->useLocaleParser();

// Comment out only useLocaleParser(), if the statement is like this
Type::build('time')
    ->useImmutable()
    /*->useLocaleParser()*/;
```

Installation is end with this. You will see your application works *relatively* well without intl extension.

Limitations
-----------

[](#limitations)

### Limitation of messaging functions

[](#limitation-of-messaging-functions)

`__()` or other messaging functions cannot parse complex message formats.

```
echo __('{0}%', 100);  // Prints 100%

echo __('{0,number,#,###}', 100); // Prints {0,number,#,###}
```

In addition, they don't support any localization features.

### Limitation of date and time functions

[](#limitation-of-date-and-time-functions)

`Cake\I18n\Time` will be an alias of `Intlless\Time`. `Intlless\Time` is a sub-class of `Cake\Chronos\MutableDateTime` contained in [Chronos](http://book.cakephp.org/3.0/ja/chronos.html), with different constructor. So you cannot call any methods not defined in the parent class, such as `i18nFormat()`, `timeAgoInWords()`, `nice()` and so on.

```
use Cake\I18n\Time;

$time = new Time('-12 hour');

echo $time->isYesterday(); // Works

echo $time->timeAgoInWords(); // Throws a fatal error
```

The same can be said about `Time` helper. In addition, they don't support any localization features.

`Cake\I18n\FrozenTime` will be an alias of `Intlless\FrozenTime`. `Intlless\FrozenTime` is a sub-class of `Cake\Chronos\Chronos` with different constructor. So you cannot call any methods not defined in the parent class as well.

`Cake\I18n\Date` and `Cake\I18n\FrozenDate` will be an alias of `Cake\Chronos\MutableDate` and `Cake\Chronos\Date`, respectively.

Note that, CakePHP earlier than version 3.2, `Cake\Chronos\MutableTime` will be an alias of [Carbon](http://carbon.nesbot.com/) instead. `Cake\I18n\FrozenTime` will be undeclared.

### Limitation of number functions

[](#limitation-of-number-functions)

`Cake\I18n\Number` will be an alias of `Intlless\Number`. `Intlless\Number` is a small class that provides the following methods *only*.

- `precision()`
- `toReadableSize()`
- `toPercentage()`
- `format()`
- `formatDelta()` (added in 0.2.0)

You cannot call any other methods not listed in the above.

```
use Cake\I18n\Number;

echo Number::precision(1.2345, 3); // Prints 1.234

echo Number::currency(1000); // Throws a fatal error
```

The same can be said about `Number` helper. In addition, they don't support any localization features.

### Other limitations

[](#other-limitations)

- You cannot use any other `Cake\I18n`-namespaced classes.
- You cannot use `Cake\ORM\Behavior\TranslateBehavior` class.
- You cannot use any functions using intl extension under the hood, such as `Cake\Utility\Text::transliterate()`.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity62

Established project with proven stability

 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

Every ~72 days

Recently: every ~90 days

Total

6

Last Release

3183d ago

Major Versions

0.2.0 → 1.0.x-dev2016-09-04

### Community

Maintainers

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

---

Top Contributors

[![chinpei215](https://avatars.githubusercontent.com/u/7399393?v=4)](https://github.com/chinpei215 "chinpei215 (38 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/chinpei215-cakephp-intlless/health.svg)

```
[![Health](https://phpackages.com/badges/chinpei215-cakephp-intlless/health.svg)](https://phpackages.com/packages/chinpei215-cakephp-intlless)
```

###  Alternatives

[dereuromark/cakephp-tools

A CakePHP plugin containing lots of useful and reusable tools

338920.1k32](/packages/dereuromark-cakephp-tools)[markstory/asset_compress

An asset compression plugin for CakePHP. Provides file concatenation and a flexible filter system for preprocessing and minification.

3761.0M11](/packages/markstory-asset-compress)[dereuromark/cakephp-shim

A CakePHP plugin to shim applications between major framework versions.

401.0M11](/packages/dereuromark-cakephp-shim)[cakedc/cakephp-phpstan

CakePHP plugin extension for PHPStan.

40676.6k31](/packages/cakedc-cakephp-phpstan)[dereuromark/cakephp-dto

A CakePHP plugin for generating immutable Data Transfer Objects with full type safety

2988.9k3](/packages/dereuromark-cakephp-dto)[dereuromark/cakephp-geo

A CakePHP plugin around geocoding tools and helpers.

51174.9k4](/packages/dereuromark-cakephp-geo)

PHPackages © 2026

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