PHPackages                             opoink/opoink-app-2 - 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. opoink/opoink-app-2

AbandonedLibrary[Framework](/categories/framework)

opoink/opoink-app-2
===================

Opoink is a modern PHP framework that let developers create a very dynamic and modular application that may require less code.

v1.0.9(3y ago)071MITJavaScriptPHP &gt;=7.3.0

Since Jul 31Pushed 3y ago1 watchersCompare

[ Source](https://github.com/opoink/opoink-app-2)[ Packagist](https://packagist.org/packages/opoink/opoink-app-2)[ Docs](https://github.com/opoink/base)[ RSS](/packages/opoink-opoink-app-2/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (9)Dependencies (1)Versions (10)Used By (0)

base-app-2
==========

[](#base-app-2)

Is a PHP framework that offers to use VueJs as frontend single site rendering.

Install
-------

[](#install)

```
php composer create-project opoink/opoink-app-2

```

If you dont have composer installed on your machine, you can download composer.phar

```
wget https://getcomposer.org/composer.phar

```

Then do this command on your terminal

```
php composer.phar create-project opoink/opoink-app-2

```

cd to /App/node directory to run npm command

Generate Component
------------------

[](#generate-component)

```
php opoink --generate=component --location=Vendor_Module::pages/home --component-name=my-component
php opoink --g=c --location=Vendor_Module::pages/home --cn=my-component
php opoink --g=c --l=Vendor_Module::pages/home --cn=my-component
php opoink --g=c --l=Vendor_Module --cn=cmy-component

```

we still use Opoink CLI to generate VueJs component

1. --generate or --g: the action to do.
2. --location or --l: is the location where to generate the component
3. --component-name or --cn: your new component name alpha, - and \_ are the accepted characters. - \_ is just a separator

This will generate a new directory and four files under **/App/Ext/Vendor/Module/View/vue/components**

```
MyComponent.ts
MyComponent.component.ts
MyComponent.html
MyComponent.scss

```

This will also generate **vue.components.ts** and **components.json** under **/App/Ext/Vendor/Module** if this two files exists opoink will update the file to include the newly generated component.

Component Injection
-------------------

[](#component-injection)

With the help of jQuery Opoink can inject your component to the existing component. either of the same module or another existing module. Simply means that you don't have to make any changes from your other module component, You just have to tell opoink where do you want to inject your new component, and let opoink to do it for you.

in **components.json** file add **inject\_to** to the component

```
{
    "component_name": "MyComponent",
    "vendor": "Vendorname",
    "module": "Modulename",
    "location": "Vendorname\/Modulename\/vue\/components\/pages\/home\/MyComponent\/MyComponent.component",
    "inject_to": [
        {
            "component_name": "ExistingComponent",
            "element_id": "element-id-from-the-component-template",
            "inject_type": "prepend",
            "wrapper": "div"
        }
    ]
}

```

1. **inject\_to**: is optional means that opoink should inject this component to another with the given name
2. **component\_name**: required if **inject\_to** is declared
3. **element\_id**: optional if has value opoink will try to look for this element, if the element is found then use this as reference for the injection, if not your component will be injected either at the top or at the botom of your component template
4. **inject\_type**: before, after, append, or prepend
    1. **before**: your component will be injected before the element
    2. **after**: your component will be injected after the element
    3. **append**: your component will be injected at the bottom of your component element
    4. **prepend**: your component will be injected at the top of your component element
5. **wrapper**: optional, your component will be wrapped inside this markup then inject.

Router
------

[](#router)

vue.routes.ts under your Vendor/Module dir

```
import VRouter from './../../../node/src/core/VueRouter';

const HomeComponent = () => import(/* webpackChunkName: "HomeComponent" */ './View/vue/components/pages/Home/Home.component');
const LoginComponent = () => import(/* webpackChunkName: "LoginComponent" */ './View/vue/components/pages/Login/Login.component');

let routes = [
    { path: '/', component: HomeComponent },
    { path: '/login', component: LoginComponent }
]

routes.forEach(route => {
    VRouter.addRoute(route);
});

```

Bootsrap Modal Popup
--------------------

[](#bootsrap-modal-popup)

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.3% 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 ~59 days

Recently: every ~81 days

Total

9

Last Release

1271d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/37372895?v=4)[opoink](/maintainers/opoink)[@opoink](https://github.com/opoink)

---

Top Contributors

[![opoink](https://avatars.githubusercontent.com/u/37372895?v=4)](https://github.com/opoink "opoink (138 commits)")[![bright-it](https://avatars.githubusercontent.com/u/98021316?v=4)](https://github.com/bright-it "bright-it (1 commits)")

---

Tags

frameworkmodularmodular frameworkopoink

### Embed Badge

![Health badge](/badges/opoink-opoink-app-2/health.svg)

```
[![Health](https://phpackages.com/badges/opoink-opoink-app-2/health.svg)](https://phpackages.com/packages/opoink-opoink-app-2)
```

PHPackages © 2026

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