gradually migrate application from codeigniter to Laravel - codeigniter

I have a quite large application written in Codeigniter 1.7.
It needs some significant enhancements and I have been evaluating Laravel 4 as the PHP framework.
I am trying to find out if anyone has successfully extended an existing Codeigniter application using Laravel so that some screens are Laravel and some are Codeigniter.
I imagine that authentication (currently using Ion Auth) and Session management (using mysql backend) would be two major hurdles to overcome.
If this is an option then I will explore in more detail as the amount of legacy code needing transferring is considerable.
Thanks in advance.

I suppose in your Laravel routes file, create a route for every page you have written in CodeIgniter. Route everything to the URL that CodeIgniter is expecting and as you complete portions in Laravel, change the routes to point to the correct ones Laravel expects as you go.
Before you do anything though, I'd get everything you need for authentication finished in Laravel, turn authentication off in CodeIgniter, and just let Laravel handle that in the routes.

Related

Does soft deletes works on lumen framework? Limitations of Lumen?

I just wanted to know soft deletes on laravel is also works with lumen framework?
what are the limitations of lumen framework compared to laravel?
we are going to start a project with micro-services concept and considering about lumen framework.
Yes, SoftDeletes are supported in Lumen.
The limitations are:
Configuration is different (not everything is out the box)
The routing is very basic
Missing useful artisan commands and helpers
some additional Laravel packages won't work
missing sub-domain routing, no optional parameters in routes
So basically you are using a stripped down version of Laravel and you are missing flexibility.

Vue and Laravel separate app - Need feedback on architecture

I need a bit of expert feedback on this please as I do not want to start my project in the wrong way.
I would like to keep my Vue code separated from Laravel, the reason being, I may use this vue app later on on Cordova.
First question:
I understand how to host the Laravel API and Vue app on 2 different domains, no problems at all but I am unsure on how to setup the folder when both apps are on the same domain.
I know that Laravel should be hosted below the public_html folder and have a symlink to the public folder for security purpose. But where should my vue app goes?
Second question:
When I save images from Vue(as I am creating a blog) the images are going to the Laravel store/images folder, so each time I want to show an article in my vue app, the API must each time request the content(text and images) from the Laravel API, is this fine? Will the Google bot be able to trigger the API request when requesting the content?(I actually never thought of this...)
Thank you so much!

how to connect two projects Laravel 4.2 and laravel 5.5?

i have a laravel 4.2 project that i want to connect it to laravel 5.5 project
Q1) how to login in the first and and authenticated to the second to so i don't have to login to the second
Q2)how to connect them to the same DB
Q3)let's say i'm in page X in laravel 4.2 and i want to direct it to Y in laravel 5.5 where i should write the route in laravel 4.2 or in 5.5 ?
at the end both of the projects are going to be on the same server and have the same domain if that is going to be helpful
Q1) how to login in the first and and authenticated to the second to so i don't have to login to the second
if the 2 webapp are in the same domain, it should not be an issue
especially if they use the same database.
Q2)how to connect them to the same DB
just use the same credentials and save it on each env file.
Q3)let's say i'm in page X in laravel 4.2 and i want to direct it to Y in laravel 5.5 where i should write the route in laravel 4.2 or in 5.5 ?
you can use the function route instead use the manual routing like
to('somepage-on-theother-laravel') this is a tedious work. So i want
to ask if why are you using the 2 webapp in the same domain instead of
just using 1 webapp framework. Im thinking that this laravel 4.2 is
the existing one and you're create a new one and you want to use the
laravel 5.5 right?
This is easy to do, just put both applications on the same server and link them using the same credentials in the .ENV file, don't forget you will also need to create Models in both apps so that both apps can use the tables.
As for the routes, you would need to add the routes & functions that can be called in each individual app.
So if the user clicks the URL for /link-to-4.2 you should have a route in 4.2:
Route::get('/link-to-4.2', 'index#controller');
and then in your 5.5 you should have a route for any URLs that direct to anything there. i.e: /link-to-5.5
Route::get('/link-to-5.5', 'index#controller');
this all being said, what is the justification for using 2 apps? I think there could be a number of security issues that might cause headaches, this will also likely be a real nightmare to manage moving forward.
I would strongely suggest that you just upgrade the 4.2 app to be 5.5.

Use same database for 2 Laravel Apps

I am making a web app on Laravel 5.3 which is frontend app. I am managing data from a Backend App. I have already made models and migrations in the frontend app and not in the backend app. So how should I use same database, models and migrations for both. Please help.
You can just create the models in the backend app and they will still work.
If you are using Artisan:
php artisan make:model ModelName
Migration files can be a little more tricky, I would suggest just managing all of this through your frontend app for consistency and then creating the models you need in the backend app.
You didn't mention if your backend app is also using Laravel.
Either way, I think your best approach would be to structure the backend app as an API. Then it would contain the database migrations and models. The back end would be the one to connect directly with the database. The front end would then fetch the data from the back end API and display them. The front end app could then have its own models too (but not database models).
There are arguments to support both using an API on the front-end app to access the backend or just recreating the models on each system. I'm supporting multiple sites which access the same data. It soon became apparent that the best way was to create an API on the backend to service them all. Also worked for other shared resources i.e. images.
There is a slight penalty in the load times but is so small it isnt worth noting. It also helped when using other platforms i.e. ioS, android and Ajax.
You can rename the migrations table in your bootstrap/app.php like this:
$app->configure('database');
$app->config->set('database.migrations', 'backend_migrations');
That way you will get two migration tables, one for the frontend, and one for the backend all in the same database.

Getting a laravel script ready for clients

I'm developing a paid application that is based on laravel. I want ideas about how to package the app and how to decrease laravel file size and get rid of all laravel components that is of no use on production/every case, for example: Boris , Predis and maybe Swift email .. What is the proper way to remove them and what other parts of laravel can be removed with no effects?
Scripts could be used in shared hosting or by people with minimum and tech knowledge .. So, it should be easy for them

Resources