Image for post
Image for post
Laravel 8

Laravel, one of the most popular php framework had a new release on 8th September — Laravel 8.

We have a couple of applications, whose backend is in laravel. I had previously written about how we upgraded them to the latest version of the framework (at that time).

It was two months since the release and we thought, this was a good time to attempt an upgrade. As before, the best place to start is the Upgrade Guide.

The required php version is now 7.3.0. We were covered on that front, having migrated to php-7.4 recently. …


Image for post
Image for post

We use an E2E public cloud system to run our website, some of our internal applications as well staging instances of the applications that we develop.

The applications use various technologies — html, php, ruby, python, nodejs, java as well as docker container. We use nginx and run each application on dedicated subdomains. We also use MySQL and postgresql databases for many of the apps.

Our server has been running 18.04 LTS with most of the programming tools/technologies locked to the LTS version. In some cases, we have done manual upgrades.

For python, we use pyenv and pyenv-virtualenv thereby making us independent of OS python version. Likewise rbenv for ruby and nvm for nodejs. However, our php apps have been using the version provided by the OS (7.2.x). …


Image for post
Image for post

In the previous Chapter, we saw the sequence of steps that we took to take our laravel v5.1 application to v5.4. We still had a few more miles to go before we (could) sleep (to quote Robert Frost).

v5.4 to v5.5

Laravel v5.5 was the first version to not work with php 5.x. It needed php 7.x.

As before, based on the upgrade guide, we changed

  • laravel/framework version to 5.5.*
  • phpunit/phpunit version to ~6.0

We also made a few other changes, especially for the new package discovery feature introduced in this version and it was time to run composer update.

Our update went through fine and the unit tests passed as well. …


Background

It was July 2014. One of our earliest US customers required an iOS mobile app. We were building the app from scratch and end to end. While iOS was new to us, for backend, we wanted to stick to a familiar programming language. At that time, most of our developers were php developers. Their previous experience was with codeignitor or yii framework. Around this time, laravel framework was becoming a popular choice in php world. We decided to build the app backend in laravel (which was in version 4.2).

Initial commit — laravel -4.2
Initial commit — laravel -4.2
Initial commit — laravel v4.2

We found the framework was easy to pick up and had excellent documentation. Our backend was pretty much a collection of API/web services, except for a couple of Admin web pages. Given this, we had decided early on that we will write unit tests. Unit test was new to our developers, but again, laravel had excellent support and documentation for it. …


Image for post
Image for post

We have been using the open source version of OrangeHRM in our organisation for a while.

When we set it up, we had a LAMP stack environment for our internal tools. This matched the recommended stack of the software. There is a web based installer, which takes database details as input, does a series of steps, including verifying the pre-requisites and then does the installation.

Over the years, as newer releases were available, we used the web based upgrade option to upgrade our installation as well.

This was until, we switched from Apache to Nginx (with http2). We also saw that there is no official support for nginx (at least for the open source version). We followed instructions like this and this and could get the application running behind nginx, after some trial and error in the configuration. …


This is the final Chapter, Chapter 9 of the series on migrating an ionic-v1 app to ionic-react.


This is Chapter 8 of the series on Migrating an ionic-v1 app to ionic-react. Chapter 1 was an introduction, Chapter 2 outlined the steps to run a v1 app using the latest ionic-cli, Chapter 3 described the typical challenges we had building the app, Chapter 4 talked about routing the app using react-router, Chapter 5 went into state management using redux and react-redux hooks, Chapter 6 was how to create mobile apps from the ionic-react app using capacitor and Chapter 7 was how to create PWA and notify users on app update.

Image for post
Image for post

As typescript website says

TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. …


This is Chapter 7 of the series on Migrating an ionic-v1 app to ionic-react. Chapter 1 was an introduction, Chapter 2 outlined the steps to run a v1 app using the latest ionic-cli, Chapter 3 described the typical challenges we had building the app, Chapter 4 talked about routing the app using react-router, Chapter 5 went into state management using redux and react-redux hooks and Chapter 6 was how to create mobile apps from the ionic-react app using capacitor.

A few months back, we had done an Angular PWA and had written about it in detail, including, how to alert users when there is an app update. …


This is Chapter 6 of the series on Migrating an ionic-v1 app to ionic-react. Chapter 1 was an introduction, Chapter 2 outlined the steps to run a v1 app using the latest ionic-cli, Chapter 3 described the typical challenges we had building the app, Chapter 4 talked about routing the app using react-router and Chapter 5 went into state management using redux and react-redux hooks.

Our v1 app (that we were migrating to newer technology) was only available as mobile app in iOS and android. Since ionic-v1 was integrated with cordova, the mobile apps were generated using cordova commands.

We could have continued to use cordova to build the native apps with the newer ionic-react app, but continuing with our decision to use newer frameworks and newer features, we decided to opt for capacitor, from the creators of ionic framework. …


Image for post
Image for post

This is Chapter 5 of the series on Migrating an ionic-v1 app to ionic-react. Chapter 1 was an introduction, Chapter 2 outlined the steps to run a v1 app using the latest ionic-cli, Chapter 3 described the typical challenges we had building the app and Chapter 4 talked about routing the app using react-router.

State management is an essential requirement in any application and ours was no exception. In our v1 app, we had relied on the factory and service patterns of AngularJS to achieve this.

In the rewrite of the app, using ionic-react, we decided to go with redux — it being widely popular and pretty much the top choice for react apps. …

About

Raghuram Bharathan

Software developer, blogger, co-founder of Innoventes Technologies

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store