PHPackages                             machitgarha/bimoo - 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. machitgarha/bimoo

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

machitgarha/bimoo
=================

Moodle declaration stubs, helping IDEs and static analyzers

3.11.8(4y ago)0187↓60%1GPL-3.0PHPPHP ^7.4|^8.0

Since Sep 2Pushed 4y ago1 watchersCompare

[ Source](https://github.com/machitgarha/bimoo)[ Packagist](https://packagist.org/packages/machitgarha/bimoo)[ RSS](/packages/machitgarha-bimoo/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (3)Versions (15)Used By (0)

Bimoo
=====

[](#bimoo)

Moodle declaration stubs, including classes, functions and globals, thanks to [php-stubs/generator](https://github.com/php-stubs/generator), helping IDEs and static analyzers.

**Note:** The stubs file may be incomplete for your usage (generated for a limited portion of stuff), and may not be updated regularly. However, contributions, including issues and pull requests, will be really welcomed.

How to use it?
--------------

[](#how-to-use-it)

First, thanks for using this.

Simply, require it in your `composer.json`:

```
composer require --dev machitgarha/bimoo

```

Now, your IDE (or text editor) should show you the suggestions for Moodle functions and classes. Not limited to this, you can guide your static analyzer as well.

What is included?
-----------------

[](#what-is-included)

First things first: The stubs file is generated from [official mirror Moodle repository](https://github.com/moodle/moodle/tree/master/lib). The updates to `stubs.php` must be done and commited manually from the repository, but the whole process to do so is almost automated (using `bin/generate-stubs` executable).

To see what paths are included and what not, see `data/path-list.json` file. You can use glob patterns in it, while it is not recommended (because it leads to huge stubs file).

Release management
------------------

[](#release-management)

To follow Moodle versions properly, and prevent from conflicts and confusions, instead of using [semantic versioning](https://semver.org), we use the following method:

Each version is in the form of `..`.

`` and `` are the pieces of Moodle release number a version of Bimoo is based on, as stated [here](https://docs.moodle.org/dev/Process#Stable_maintenance_cycles). The reason why the bug-fix piece of Moodle version is not included, is what its official documentation says: "Releases like 2.2.1, 2.2.2, 2.2.3 etc only include fixes based on the latest major release (2.2) and never any significant new features or database changes".

`` is the state of the current library for that specific Moodle version. In other words, considering a particular minor release of Moodle, it increases whenever an update is made to the library (i.e. the stubs file).

For example, `3.11.19` means the twentieth series of changes supporting Moodle 3.11.\*. Pay attention, it has nothing to do with Moodle 3.11.19 (which, perhaps, will never be released).

Every Moodle version older than latest supported is followed in a separate branch. The branches are named as their Moodle version they follow, e.g. `3.9`. Ideally, `master` branch follows the latest Moodle version.

**Note:** There is no guarantee to support all versions Moodle currently supports. However, support is pretty much welcomed from the community (maybe you?).

To-Do
-----

[](#to-do)

- Use GitHub Actions to automate the process. The workflow would be, cloning the repository of Moodle, switching to the latest stable version, run the generator for a list of predefined paths and files, commit the changes and push it back.

Contributions
-------------

[](#contributions)

Feel free to do so.

### Re-generating stubs file

[](#re-generating-stubs-file)

First, add your files and patterns to `data/path-list.json` file. Then, issue the following command for the `stubs.php` to be re-generated automatically:

```
./bin/generate-stubs

```

`` is the path to either a Moodle installation, or (a clone of) the official repository (see `--help` for more information).

That's it! Commit the changes, make a PR, and we would all be happy!

License
-------

[](#license)

Licensed under [GPL 3.0](./LICENSE.md).

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

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

Total

14

Last Release

1648d ago

### Community

Maintainers

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

---

Top Contributors

[![machitgarha](https://avatars.githubusercontent.com/u/14151550?v=4)](https://github.com/machitgarha "machitgarha (36 commits)")

---

Tags

moodlemoodle-pluginpluginstatic-analysisstub

### Embed Badge

![Health badge](/badges/machitgarha-bimoo/health.svg)

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

PHPackages © 2026

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