Skip to content

Overwrite application service ​

In some cases you want to add your own logic or replace the default one. If this logic is in a service that is loaded by the application, you can just overwrite this service and change it to your needs. Just follow these steps.

Create service ​

Create your own service and extend from the old one

typescript
// assets/enhavo/lib/MyView.ts

import View from '@enhavo/app/View';

export default class MyView extends View
{
    // ... overwrite or add function
}

Create application ​

Create your application class and extend from the old. Just replace the services you want by overwriting the parent methods.

typescript
// assets/enhavo/lib/MyApplication.ts

import Application from "@enhavo/app/Application";
import MyView from "./MyView"

export default class MyApplication extends Application
{
    public getView()
    {
        if(this.view == null) {
            this.view = new MyView(this.getDataLoader().load()['view']);
            this.view.setEventDispatcher(this.getEventDispatcher());
        }
        return this.view;
    }
}

Use application ​

Replace your the default application with your own one by changing the import statement

typescript
// assets/enhavo/view.ts

import Application from "./lib/MyApplication";