PHPackages                             b\_fmw/bfmw - 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. [Framework](/categories/framework)
4. /
5. b\_fmw/bfmw

ActiveFramework[Framework](/categories/framework)

b\_fmw/bfmw
===========

Simple php framework

113PHP

Since May 20Pushed 1mo agoCompare

[ Source](https://github.com/b-fmw/bfmw)[ Packagist](https://packagist.org/packages/b_fmw/bfmw)[ RSS](/packages/b-fmw-bfmw/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

BFMW
====

[](#bfmw)

BFMW is a **lightweight PHP framework** focused on server-rendered pages, secure form handling, and reusable UI building blocks.

It is designed for teams that want:

- a clear application bootstrap flow,
- strict request sanitization conventions,
- built-in CSRF and parameter tokenization,
- a small templating engine with block-based rendering,
- and optional ready-to-use front-end helpers (modal, updater, binding, treeview, responsive menu).

> This README documents the current framework architecture and usage. A dedicated sample branch is available.

---

What BFMW is for
----------------

[](#what-bfmw-is-for)

BFMW is a good fit when you build:

- internal tools,
- administration portals,
- business web apps with classic page navigation,
- applications where form security and predictable request lifecycle matter.

It provides a structured base to:

1. initialize environment + session,
2. sanitize incoming data,
3. validate CSRF on POST,
4. decode short-lived tokenized parameters,
5. authenticate users,
6. route to page generators,
7. render shared header/footer and templates.

---

Core concepts
-------------

[](#core-concepts)

### 1) `Application` as the orchestrator

[](#1-application-as-the-orchestrator)

You create a concrete class that extends `bfmw\Application`.

The base class handles:

- autoload registration,
- environment loading,
- headers + sanitization,
- CSRF check for POST requests,
- parameter-token cleanup policy,
- DB connection lifecycle start,
- authentication,
- routing with admin/non-admin generator resolution.

You only need to implement:

- `run(): void` (your page execution logic),
- `getFavIcon(): string` (favicon URL for global header rendering).

### 2) Generators = page controllers

[](#2-generators--page-controllers)

BFMW uses `PageGenerator`-based classes as controller/rendering units.

Built-in generators include:

- `OverallHeader` (loads common CSS/JS and optional UI modules),
- `OverallFooter` (shared footer + DB disconnect),
- `CsrfGenerator` (inline CSRF fields/attributes),
- `ParametersGenerator` (inline encoded parameter token fields/attributes).

### 3) Tokenized request payloads

[](#3-tokenized-request-payloads)

Instead of exposing sensitive operational values directly in HTML, BFMW can store payloads in session and send only a generated token in forms/attributes:

- `Csrf` manages request forgery tokens by logical context,
- `ParametersEncoder` stores arbitrary parameter arrays behind TTL/one-time tokens.

### 4) Templating layer

[](#4-templating-layer)

BFMW ships with:

- `TemplateEngine`: low-level parser/compiler,
- `Templating`: higher-level wrapper for assigning page vars and repeating blocks.

This supports:

- global variable assignment,
- block iteration,
- conditional rendering primitives,
- reusable global templates.

### 5) Data access abstraction

[](#5-data-access-abstraction)

`DBConnector` defines the database contract.

`MySQLDBConnector` provides a mysqli implementation including:

- read helpers,
- write helpers,
- transaction helpers,
- convenience `createData(...)` insertion based on BFMW-secured keys.

### 6) Optional request interception

[](#6-optional-request-interception)

`Interceptor` allows pre-routing behavior:

- `frontInterceptor()`
- `bindingInterceptor()`

If an interceptor returns `true`, default routing is skipped.

---

Built-in security model
-----------------------

[](#built-in-security-model)

BFMW includes multiple layers by default:

- **Security headers** (`Framework::sendHeaders`) such as CSP, frame protection, referrer policy, etc.
- **Global input sanitization** (`Framework::sanitize`) for `$_GET`, `$_POST`, `$_COOKIE`, `$_REQUEST`.
- **Dual-value secure mapping** (`Helpers::manualBfmwSecure`) creating:
    - `bfmw_orig_*` values,
    - `bfmw_num_*` numeric-normalized values.
- **CSRF validation on POST**: invalid token clears `$_POST` before business logic.
- **Token expiry + one-time semantics** for CSRF and encoded parameters.
- **Session cookie hardening** in `Authenticator` (`HttpOnly`, `SameSite=Strict`, conditional `Secure`).

---

Front-end assets included
-------------------------

[](#front-end-assets-included)

The package contains default CSS and JavaScript modules under `src/css` and `src/js`.

Notable built-in JS features:

- load queues,
- responsive menu toggling,
- master/detail responsive behavior,
- loading overlay during submits/navigation,
- modal message display,
- binding/update helpers,
- request helper functions,
- treeview interactions.

`OverallHeader` auto-injects BFMW asset bundles and optional local page assets (`css/style.css`, `js/main.js`, and per-page `specific_.css/js` when present).

---

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

[](#installation)

### Requirements

[](#requirements)

- PHP `>= 8.5`
- Extensions:
    - `ext-mysqli`
    - `ext-intl`
    - `ext-simplexml`

### Composer

[](#composer)

```
composer require b_fmw/bfmw
```

### Autoload namespace

[](#autoload-namespace)

```
"autoload": {
  "psr-4": {
    "bfmw\\": "src/"
  }
}
```

---

Project integration checklist
-----------------------------

[](#project-integration-checklist)

When integrating BFMW into an app:

1. **Initialize once** with `Application::init()` before creating your application instance.
2. **Provide an environment file** and call the parent constructor with its path.
3. **Implement an `Authenticator`** subclass:
    - `authenticate()`
    - `isAdmin()`
    - `isRegistered()`
4. **Provide a `DBConnector`** (typically `MySQLDBConnector`).
5. **Implement your concrete `Application::run()`** to instantiate and execute your page generator(s).
6. **Use BFMW templates/generators** for consistent header/footer and secure inline tokens.
7. **Read request data using BFMW conventions** (`bfmw_orig_*` / `bfmw_num_*`).

---

Runtime flow (high-level)
-------------------------

[](#runtime-flow-high-level)

A typical request follows this order:

1. Session starts (if not active).
2. Environment variables are loaded from file.
3. Security headers are sent.
4. Superglobals are sanitized and transformed.
5. If POST, CSRF is validated.
6. Parameter tokens are cleaned when no encoded payload is posted.
7. Timezone is configured.
8. Database connector is initialized and connected.
9. Authentication is executed and persisted in session.
10. Interceptors run (binding/front).
11. Router resolves page generator (including admin fallback logic).
12. Your `run()` executes page rendering and logic.

---

Directory overview
------------------

[](#directory-overview)

```
src/
  core/            # application lifecycle, security, helpers, DB abstraction
  templating/      # template engine + wrapper
  generators/      # reusable generators (header/footer/csrf/params)
  repository/      # abstract repository base
  css/             # framework styles
  js/              # framework JS modules
  images/          # framework assets
  global_templates/# shared template fragments

```

---

Licensing
---------

[](#licensing)

This project is distributed under **CC BY-NC-ND 4.0**.

Please read the license carefully before using it in production or redistributing any part of the framework.

---

Class diagram with the classes of the sample application
--------------------------------------------------------

[](#class-diagram-with-the-classes-of-the-sample-application)

[![Class diagram](https://camo.githubusercontent.com/83c423e0dda3518280950cfa7ff81ca026fe66a327c493f5a9b3f75b036e17af/68747470733a2f2f696d672e706c616e74756d6c2e62697a2f706c616e74756d6c2f7376672f784c626a527a6975346c786b4e6f36756e67733372446132316e6e6b59787273624c5866577a66397264526b4b316d4530597448335835414c346167427a6c736c7a7943674854496168445078435378567157617064307537437842437a476c495845666f756f465262624157754a3958444348754c6d7950456f4876566b486b63447647494a395765474a664b416a39546b4d6362756138622d7074735a6d66696a6f496641786c4848626466753942634a6d5157555f784b797a4459354a41596b4d6c785f314e73796e41534e33696e7064386a534c6d7652336b614671497642484f34446b484b503638717674456a305961366e5f6775454b49506665396c424859366f4c62594a485462754735574c64324b355179374b4b31335f5f6c36437675555f55314c5f31503965627475795f48395648416a6e536854526e2d544c593767745531593032524a52383769774e3576536c75666e37762d37444f58437432705a696e756567314b665461707272586637493230584f706c4a714137575274306b4d2d594849515a304e4951547363784b38627a64502d644832795f6a756e70586a453579373476316e49744544463633756a7137656c5746544b54365462637846483977336c5373612d4d6470315a494d516f654a4d69305241644e486c57525f32374277753876435a713342364e736132525a58455044414e716b486d39684a65734f4a435f305f4a5073317570744c64667736736e6a316865705371477971666e38376666447a5f55586a4e2d7648486f38625547426a5f6c7156343848785255513165412d72457471377579696f54704a6e4941334c455264374d344145775a595f5a71516b2d7972637875426e53483337556f777358372d616c4131496e563475324168644f56514b5145386d456d526c79792d32375347435648336f52586f5372757a7a466c5f654e75717835644a764a7178556b51564d657671666b556944486c647a30686f4a7a6a627a325f55666733436966673879344a595f357a325576627978312d37696f74594445546e6c4579384c784e306f35514f5043795572354f427467326b77506d654b6551643353686f4c62446f6a524c6f754e6764384647724c4a505a5761544d6b4c4e4531447a5754654337535433364f463839506938784d77756b686f5f584a7a33626d4b69496941454d554865793567744968545433595a694251423673756d516a5f494563456235705f3030776c444c7a4a5344344b744875593553585f5f546b52447130484554736d33414353446d685a4d6652716f34724e7a75477073314b7a626f41783561657448636374394a394373464d667045786561776972764a4933617a61386f6d5439787472424c34313558744f646530685f39426e71712d46436436487435464c684c767a454f364b7470686968317974493969566e4566437244586b6c65714c716a6564634f704851684f52374f51564835336251644a6f4d794c364c685a784866776264496e5942455a65586d746b464f72716672666b7767484e674b53755248566d615039426f5a594a4b704874636138764a665838787169636e535f3357774b4a4942737266675670504f56574e717855756b6d63305a507268796146704b6836594e716541786b4570383071426d4a3272334a5f614d4f38746976536d4c5a6d6867616b5058786b54455230356f7764674a4743423353765134414b6c716146693164446a3943614c43553333444d345969656e7648664d32796f72303675794271656363726a515152336344537638766e54504239417964457150766763386a756239483679456c392d664d4643495769746e676d7a557550414c65347731444a6b75616472616b503052585f4c6c6245764b424a2d786e7056436e307057633154367478633642556f6562656978557964785551796748544a7235795f475a484e734b647161317a38306b4b73542d456e446858354370516a354c554a6f4b4976565858756b705531766b656c5870354177322d574956507272554e4d752d6c6631743764755575386e4d67776a4c6c38477937647738726371496a6d5762426d615f744d4b46613944426f30315f6348474d5f644742587573746f70415a61594c4a4631525730354846717746776d50476334314d6367504d4d5768573174743479777876414d3550475a50634d6933754b77456161696d2d52667739586d634a386a374a56417776364a41696e4b76364b6a39486b79546f586473375965415032755a48796d5366704b5153653430682d31492d7662716d5a2d304c66693848567930495f6955554e34366d356d43486d4e6d632d7366716f774a586636784147516e4e72444230537474674137336441504c6266656a454a34454e66724d7645646c775339316f35733655503178344c684b6a664b6e4f4746765553557a6371616565723655683835623852583654494652637837726f56465867714b716c305f2d33504d4d374c434f5f4d66747a376d426f32314e7a533046596651546f6d5a5733455f6e4d4a6334363063364a57647a67384a76474d704b76454a617753683530376c474e41325132676953354d42526871454f7038585a587369364f7865797564456b454f636e6632397845534e6f6f595546467673574872564875706330627271556e3849305f7935454b4d4b6a4f47325374474d737177794b4d76686a344876544e4736475638366b394b444e4b5350524f6a364b797450332d544f306a757750514f33654f6d32644a5757704d39737967505f42734a7139447878506d33617263556d6b6e5877596c435f41554d4f714c4c384e3835385133416634662d6f4452636259653345525a41654a3744336e38784f416e525a5050467772794e4e4a707132693447394243647a4f4b706a356f4a77717331464946394251746a775a496c6e6436526b576257654a512d4654793158464c5f74464d5f57426a774664506f796b7354727931746b726b6c4578506e765772444470476845425761455868447a73334c38726e663839544c4d53796f5a4746544a336e6650544a3171366b786b6e316e3046715351347a56714137517444774f7a7979726658304948646a6d425946557a5056744a47313065393079764270547742494e34544f43703442466d644c746f70304b4e5f686d524d51417a76684155764f575233517a53506c43375a452d6a6a6257383166646546395032555765727055494a6f54526559577933394e776a65414f3535776a31796e4c6e4a6d5a676a767951494a71615f664373693032647a4534764d6833615a6c516a457973474e63743966445251452d544b32593472424e466d6e62666746666b6f5a6361464c754b43654d6e6a4c756c41576c58424b796c4c676e507531474132354243737972623755397676797761346e547269526838454a577538355148555858674744543152706869566d444c79306677375342766b48335747724f46526d57676a74455a7a54526a4c4b6f532d6c4578744b6f5673575f4c596954734a6a504a644d327a3369792d4751794868777a6b4c63544856317351336750725857374d53427345446c35666b387859637a4e32764a7873726466635173333231743338664b5844522d3852356f6174315351377838496e4f763167456d534375623368637a38314958543533563079625f642d65376c76355542465544514732694474654f5375744d7331473255305068446c74496c4e516b44584c4e584d6a313241364958667a6a71566478654c5239424b5a2d52753167494f696a446d7554736f4c5f336741365f684b486c62724a77576a53415150564831645f746e486d332d52476e6b743962754b4c5a4459594e345a556c6942434d616a68444e6e4f587745785978354f4974665872557a776d48444c7a74525a73794c4a73694d4c454b6b473653304865466a4752615931542d717875696670754930764f73756b44636b5331364e794f3664306e5332385932766754533935307a75412d464e574f343763397a374a6f78595a697a70354375503831444c61784e48357575653954614a5756684e3071746e4935334536615a744a424c747334676b585070344d66656965713042624766514b6b7a65717a4c3252484133484c467870784c315a43676d59363068383456683847656b484e7a6965496c747a655754506f6b2d6a3149375f457575784f6b675f612d71636e2d7246676d612d47734b39707a5a6e676c54686b56753556765f74376d743453445f6e6a4a4e7650393033533979525f6c33366c586a645854375668544e6a325756674746544e6d726e753249786239366e474456634267796d74646e546f4f434e3157774774454153786d4454705f726c555a784e594e37783650576e557550543150795f69464c5354335f4e384c5a306e2d66474164554b624f64706d447746365965315734744c7951774a3164396a5568763074783367386470536578744c50685133395532764d467035536657485741666470526c487536332d35686e4c694455434e347533586d616b31727a4845737379424556302d6936764a5a3832356843565739316a6577434e684753506446545376316655444a77583446685465486a464970575a6d44756d6f47664155435442776236666d554863357447626b5041576c61534d766b6e6b4f694e43624354754d52694851426a78304364696333475744457138786d51565037754d69415776696b6b76454e425832767879617042574b4f563034634d57314451644538437a657a757a306c447170425a5f6d4b30)](https://img.plantuml.biz/plantuml/svg/xLbjRziu4lxkNo6ungs3rDa21nnkYxrsbLXfWzf9rdRkK1mE0YtH3X5AL4agBzlslzyCgHTIahDPxCSxVqWapd0u7CxBCzGlIXEfouoFRbbAWuJ9XDCHuLmyPEoHvVkHkcDvGIJ9WeGJfKAj9TkMcbua8b-ptsZmfijoIfAxlHHbdfu9BcJmQWU_xKyzDY5JAYkMlx_1NsynASN3inpd8jSLmvR3kaFqIvBHO4DkHKP68qvtEj0Ya6n_guEKIPfe9lBHY6oLbYJHTbuG5WLd2K5Qy7KK13__l6CvuU_U1L_1P9ebtuy_H9VHAjnShTRn-TLY7gtU1Y02RJR87iwN5vSlufn7v-7DOXCt2pZinueg1KfTaprrXf7I20XOplJqA7WRt0kM-YHIQZ0NIQTscxK8bzdP-dH2y_junpXjE5y74v1nItEDF63ujq7elWFTKT6TbcxFH9w3lSsa-Mdp1ZIMQoeJMi0RAdNHlWR_27Bwu8vCZq3B6Nsa2RZXEPDANqkHm9hJesOJC_0_JPs1uptLdfw6snj1hepSqGyqfn87ffDz_UXjN-vHHo8bUGBj_lqV48HxRUQ1eA-rEtq7uyioTpJnIA3LERd7M4AEwZY_ZqQk-yrcxuBnSH37UowsX7-alA1InV4u2AhdOVQKQE8mEmRlyy-27SGCVH3oRXoSruzzFl_eNuqx5dJvJqxUkQVMevqfkUiDHldz0hoJzjbz2_Ufg3Cifg8y4JY_5z2Uvbyx1-7iotYDETnlEy8LxN0o5QOPCyUr5OBtg2kwPmeKeQd3ShoLbDojRLouNgd8FGrLJPZWaTMkLNE1DzWTeC7ST36OF89Pi8xMwukho_XJz3bmKiIiAEMUHey5gtIhTT3YZiBQB6sumQj_IEcEb5p_00wlDLzJSD4KtHuY5SX__TkRDq0HETsm3ACSDmhZMfRqo4rNzuGps1KzboAx5aetHcct9J9CsFMfpExeawirvJI3aza8omT9xtrBL415XtOde0h_9Bnqq-FCd6Ht5FLhLvzEO6Ktphih1ytI9iVnEfCrDXkleqLqjedcOpHQhOR7OQVH53bQdJoMyL6LhZxHfwbdInYBEZeXmtkFOrqfrfkwgHNgKSuRHVmaP9BoZYJKpHtca8vJfX8xqicnS_3WwKJIBsrfgVpPOVWNqxUukmc0ZPrhyaFpKh6YNqeAxkEp80qBmJ2r3J_aMO8tivSmLZmhgakPXxkTER05owdgJGCB3SvQ4AKlqaFi1dDj9CaLCU33DM4YienvHfM2yor06uyBqeccrjQQR3cDSv8vnTPB9AydEqPvgc8jub9H6yEl9-fMFCIWitngmzUuPALe4w1DJkuadrakP0RX_LlbEvKBJ-xnpVCn0pWc1T6txc6BUoebeixUydxUQygHTJr5y_GZHNsKdqa1z80kKsT-EnDhX5CpQj5LUJoKIvVXXukpU1vkelXp5Aw2-WIVPrrUNMu-lf1t7duUu8nMgwjLl8Gy7dw8rcqIjmWbBma_tMKFa9DBo01_cHGM_dGBXustopAZaYLJF1RW05HFqwFwmPGc41McgPMMWhW1tt4ywxvAM5PGZPcMi3uKwEaaim-Rfw9XmcJ8j7JVAwv6JAinKv6Kj9HkyToXds7YeAP2uZHymSfpKQSe40h-1I-vbqmZ-0Lfi8HVy0I_iUUN46m5mCHmNmc-sfqowJXf6xAGQnNrDB0SttgA73dAPLbfejEJ4ENfrMvEdlwS91o5s6UP1x4LhKjfKnOGFvUSUzcqaeer6Uh85b8RX6TIFRcx7roVFXgqKql0_-3PMM7LCO_Mftz7mBo21NzS0FYfQTomZW3E_nMJc460c6JWdzg8JvGMpKvEJawSh507lGNA2Q2giS5MBRhqEOp8XZXsi6OxeyudEkEOcnf29xESNooYUFFvsWHrVHupc0brqUn8I0_y5EKMKjOG2StGMsqwyKMvhj4HvTNG6GV86k9KDNKSPROj6KytP3-TO0juwPQO3eOm2dJWWpM9sygP_BsJq9DxxPm3arcUmknXwYlC_AUMOqLL8N858Q3Af4f-oDRcbYe3ERZAeJ7D3n8xOAnRZPPFwryNNJpq2i4G9BCdzOKpj5oJwqs1FIF9BQtjwZIlnd6RkWbWeJQ-FTy1XFL_tFM_WBjwFdPoyksTry1tkrklExPnvWrDDpGhEBWaEXhDzs3L8rnf89TLMSyoZGFTJ3nfPTJ1q6kxkn1n0FqSQ4zVqA7QtDwOzyyrfX0IHdjmBYFUzPVtJG10e90yvBpTwBIN4TOCp4BFmdLtop0KN_hmRMQAzvhAUvOWR3QzSPlC7ZE-jjbW81fdeF9P2UWerpUIJoTReYWy39NwjeAO55wj1ynLnJmZgjvyQIJqa_fCsi02dzE4vMh3aZlQjEysGNct9fDRQE-TK2Y4rBNFmnbfgFfkoZcaFLuKCeMnjLulAWlXBKylLgnPu1GA25BCsyrb7U9vvywa4nTriRh8EJWu85QHUXXgGDT1RphiVmDLy0fw7SBvkH3WGrOFRmWgjtEZzTRjLKoS-lExtKoVsW_LYiTsJjPJdM2z3iy-GQyHhwzkLcTHV1sQ3gPrXW7MSBsEDl5fk8xYczN2vJxsrdfcQs321t38fKXDR-8R5oat1SQ7x8InOv1gEmSCub3hcz81IXT53V0yb_d-e7lv5UBFUDQG2iDteOSutMs1G2U0PhDltIlNQkDXLNXMj12A6IXfzjqVdxeLR9BKZ-Ru1gIOijDmuTsoL_3gA6_hKHlbrJwWjSAQPVH1d_tnHm3-RGnkt9buKLZDYYN4ZUliBCMajhDNnOXwExYx5OItfXrUzwmHDLztRZsyLJsiMLEKkG6S0HeFjGRaY1T-qxuifpuI0vOsukDckS16NyO6d0nS28Y2vgTS950zuA-FNWO47c9z7JoxYZizp5CuP81DLaxNH5uue9TaJWVhN0qtnI53E6aZtJBLts4gkXPp4Mfeieq0BbGfQKkzeqzL2RHA3HLFxpxL1ZCgmY60h84Vh8GekHNzieIltzeWTPok-j1I7_EuuxOkg_a-qcn-rFgma-GsK9pzZnglThkVu5Vv_t7mt4SD_njJNvP903S9yR_l36lXjdXT7VhTNj2WVgGFTNmrnu2Ixb96nGDVcBgymtdnToOCN1WwGtEASxmDTp_rlUZxNYN7x6PWnUuPT1Py_iFLST3_N8LZ0n-fGAdUKbOdpmDwF6Ye1W4tLyQwJ1d9jUhv0tx3g8dpSextLPhQ39U2vMFp5SfWHWAfdpRlHu63-5hnLiDUCN4u3Xmak1rzHEssyBEV0-i6vJZ825hCVW91jewCNhGSPdFTSv1fUDJwX4FhTeHjFIpWZmDumoGfAUCTBwb6fmUHc5tGbkPAWlaSMvknkOiNCbCTuMRiHQBjx0Cdic3GWDEq8xmQVP7uMiAWvikkvENBX2vxyapBWKOV04cMW1DQdE8Czezuz0lDqpBZ_mK0)

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance61

Regular maintenance activity

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/0cdb2f13127a51944a7d119e26648530b38de3746a9075813ba56bfd7069d9ff?d=identicon)[Cédric BOUHOURS](/maintainers/C%C3%A9dric%20BOUHOURS)

---

Top Contributors

[![bouhours](https://avatars.githubusercontent.com/u/69435648?v=4)](https://github.com/bouhours "bouhours (23 commits)")

### Embed Badge

![Health badge](/badges/b-fmw-bfmw/health.svg)

```
[![Health](https://phpackages.com/badges/b-fmw-bfmw/health.svg)](https://phpackages.com/packages/b-fmw-bfmw)
```

###  Alternatives

[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k104.3M829](/packages/laravel-socialite)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k38.6M289](/packages/laravel-dusk)[pinguo/php-msf

Pinguo Micro Service Framework For PHP

1.7k4.2k](/packages/pinguo-php-msf)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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