PHPackages                             ibrows/xeditable-bundle - 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. ibrows/xeditable-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

ibrows/xeditable-bundle
=======================

bootstrap x-editable symfony2 forms integration

1.2.0(9y ago)029.0kMITJavaScriptCI failing

Since Apr 23Pushed 5y agoCompare

[ Source](https://github.com/ibrows/IbrowsXeditableBundle)[ Packagist](https://packagist.org/packages/ibrows/xeditable-bundle)[ Docs](http://www.ibrows.ch)[ RSS](/packages/ibrows-xeditable-bundle/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependencies (1)Versions (16)Used By (0)

IbrowsXeditableBundle
=====================

[](#ibrowsxeditablebundle)

x-editable (  ) symfony2 forms integration

Install &amp; setup the bundle
------------------------------

[](#install--setup-the-bundle)

1. Add IbrowsXeditableBundle in your composer.json:

    ```
    {
        "require": {
            "ibrows/xeditable-bundle": "~1.0",
        }
    }
    ```
2. Now tell composer to download the bundle by running the command:

    ```
    $ php composer.phar update ibrows/xeditable-bundle
    ```

    Composer will install the bundle to your project's `ibrows/xeditable-bundle` directory. ( PSR-4 )
3. Add the bundles to your `AppKernel` class

    ```
    // app/AppKernerl.php
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Ibrows\XeditableBundle\IbrowsXeditableBundle(),
            // ...
        );
        // ...
    }
    ```
4. Include JS-Lib and CSS Files

    ```
            {% javascripts
                '@IbrowsXeditableBundle/Resources/public/javascript/bootstrap.editable-1.5.1.js'
                '@IbrowsXeditableBundle/Resources/public/javascript/xeditable.js'
            %}

            {% endjavascripts %}

    ```

    ```
            {% stylesheets
                'bundles/ibrowsxeditable/css/bootstrap-editable.css'
            %}

            {% endstylesheets %}

    ```

Basic Usage
-----------

[](#basic-usage)

Get the factory and wrap your form with a xeditableFormMapper

```
$factory = $this->get('ibrows_xeditable.mapper.factory');
$xeditableFormMapper = $factory->createFormFromRequest(
   'user_xedit', //target route where data would be sent after submit
    array('user' => $user->getId()), // parameters  for the target route
    $request, // request to get information about the current view, to find forward paramters
    new UserEditType(),  // a form type with a name and a firstName field
    $user, // form data for the form type
    array('validation_groups' => arrya('edit_user')) // form options for the form type
);
```

Then user the xedit\_inline\_render function in twig to render the xeditableFormMapper

XeditableMapperInterface $mapper, $formPath = null, array $attributes = array(), array $options = array()

```
  {{ xedit_inline_render(xeditableFormMapper, 'name', {'data-emptytext': 'userName'|trans}) }}
  {{ xedit_inline_render(xeditableFormMapper, 'firstName', {'data-emptytext': 'firstName'|trans}) }}

```

Save the xedit all request from one form in a action

```
        /**
         * @Route("/xedit/{user}", name="user_xedit")
         * @param User $user
         * @param Request $request
         * @return Response|\Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response|void
         */
        public function xeditAction(User $user, Request $request)
        {
            $factory = $this->get('ibrows_xeditable.mapper.factory');
            $xeditableFormMapper = $factory->createFormFromRequest(
               'user_xedit', //target route where data would be sent after submit
                array('user' => $user->getId()), // parameters  for the target route
                $request, // request to get information about the current view, to find forward paramters
                new UserEditType(),  // a form type with some fields
                $user, // form data for the form type
                array('validation_groups' => array('edit_user')) // form options for the form type
            );

            if ($request->isMethod('POST')) {
                if (($response = $xeditableFormMapper->handleRequest($request)) instanceof Response) {
                    return $response;
                }

                $em = $this->getManagerForClass($user);
                $em->persist($user);
                $em->flush();

                // after success redirect to view, so frontend can be refreshed
                return $this->redirectToForwardRoute($request, 'GET');
            }
            // get back view of the handled form, to display error messages
            return new Response($xeditableFormMapper->renderXeditable($request->get('path')));
        }
```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Recently: every ~146 days

Total

13

Last Release

3513d ago

Major Versions

0.10 → 1.0.02015-02-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/31dcaa71007628affe5a759a757d17182e05ab88f2b018a46d74c62bc10d8249?d=identicon)[ibrows](/maintainers/ibrows)

---

Top Contributors

[![Gladhon](https://avatars.githubusercontent.com/u/946885?v=4)](https://github.com/Gladhon "Gladhon (1 commits)")[![mikemeier](https://avatars.githubusercontent.com/u/776406?v=4)](https://github.com/mikemeier "mikemeier (1 commits)")[![qtsd](https://avatars.githubusercontent.com/u/10633476?v=4)](https://github.com/qtsd "qtsd (1 commits)")[![ronaldburch](https://avatars.githubusercontent.com/u/7140375?v=4)](https://github.com/ronaldburch "ronaldburch (1 commits)")

---

Tags

Symfony2bootstrapformx-editableinline editXeditableBundle

### Embed Badge

![Health badge](/badges/ibrows-xeditable-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/ibrows-xeditable-bundle/health.svg)](https://phpackages.com/packages/ibrows-xeditable-bundle)
```

###  Alternatives

[snapappointments/bootstrap-select

The jQuery plugin that brings select elements into the 21st century with intuitive multiselection, searching, and much more. Now with Bootstrap 4 support.

9.8k480.4k3](/packages/snapappointments-bootstrap-select)[anahkiasen/former

A powerful form builder

1.4k1.4M14](/packages/anahkiasen-former)[kartik-v/yii2-widget-rating

A Yii2 widget for the simple yet powerful bootstrap-star-rating plugin with fractional rating support (sub repo split from yii2-widgets)

444.1M8](/packages/kartik-v-yii2-widget-rating)[kartik-v/yii2-widget-switchinput

A Yii2 wrapper widget for the Bootstrap Switch plugin to use checkboxes &amp; radios as toggle switchinputes (sub repo split from yii2-widgets)

384.4M13](/packages/kartik-v-yii2-widget-switchinput)[execut/yii2-widget-bootstraptreeview

Bootstrap Tree View widget wrapper for yii2

46170.2k](/packages/execut-yii2-widget-bootstraptreeview)[bgaze/bootstrap-form

Bootstrap 4 forms builder for Laravel 5.8+

5243.5k](/packages/bgaze-bootstrap-form)

PHPackages © 2026

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