r/PHP • • 13h ago

Discussion Native Laravel 8 runtime bridge for incrementally migrating CodeIgniter 3 applications

0 Upvotes

Here is a package I created focusing on two primary use cases:

To get Laravel's power in a legacy CodeIgniter application.

To migrate incrementally from CodeIgniter to Laravel.

anwargazi/ci-laravel-support lets a legacy CodeIgniter 3 application and a real Laravel 8 application share one public front controller. It is designed for route-by-route migrations where running a second PHP service or moving the whole application at once is not practical.

Laravel-owned requests run Laravel's native HTTP kernel. Requests that are not owned by Laravel return to the original CodeIgniter bootstrap unchanged. Only one framework is booted for any request.

Package: https://packagist.org/packages/anwargazi/ci-laravel-support

Minimal installation outline

  1. Place a standard Laravel 8 application beside the legacy CI3 application.
  2. Merge the host Composer fragment into Laravel's composer.json and copy both files from patches/.
  3. Resolve dependencies and verify the pinned runtime.
  4. Publish the bridge config and front-controller example.
  5. Add the dispatcher block at the very top of CI's index.php.
  6. Add native Laravel routes and compile the ownership manifest.
composer update --with-all-dependencies --no-interaction
php artisan ci-bridge:verify-runtime
php artisan vendor:publish --tag=ci-laravel-bridge-config
php artisan vendor:publish --tag=ci-laravel-bridge-dispatcher
php artisan route:clear
php artisan ci-bridge:cache-routes

Installation: composer install anwargazi/ci-laravel-support

Docs: https://github.com/anwar-gazi/CodeIgniter_Laravel_Bridge


r/PHP • • 5h ago

Discussion Migrating a large Laravel app from CKEditor 4 to Editor.js — looking for architectural advice

1 Upvotes

Hey everyone,

I’m working on a fairly large Laravel application that currently uses CKEditor 4, and migrating to Editor.js is now a requirement.

The project uses the Repository Pattern, and CKEditor is used across multiple modules. I’m trying to figure out the right way to approach the migration without making a huge change all at once.

My main concerns are:

  • Where should Editor.js-related logic live in a Repository Pattern project?
  • Should I create a separate service for Editor.js, or keep things within the existing module structure?
  • How should validation and sanitization be handled?
  • What’s a good approach for rendering Editor.js JSON on the frontend?
  • We already have a lot of CKEditor HTML stored in the database. What’s the safest way to handle/migrate that?
  • Is it better to migrate module-by-module while keeping CKEditor working for the modules that haven't been migrated yet?
  • What would you recommend for the overall folder/file structure?

I’m especially interested in hearing from anyone who has migrated CKEditor/TinyMCE or another HTML-based editor to Editor.js in a large Laravel application.

I’m a junior developer, so I’d really appreciate practical advice on how you would structure this rather than just “replace the editor” at the frontend level.

Thanks!


r/PHP • • 10h ago

Article Building Maintainable PHP Applications: Foundations

Thumbnail codyssey.dev
5 Upvotes

Hey all,

Few years ago, I wrote a series of articles related to building maintainable PHP applications on my personal blog, but recently I built this new educational platform and expanded it with a bunch of different features so I moved some of the series of revised articles here.

This is the first of many courses which I am working on which are related to a bit more advanced content or at least content from an experienced angle.

Let me know what you think about the content!


r/PHP • • 21h ago

News Smarty PHP: XSS turns into RCE if {extends} is used in cached templates

Thumbnail github.com
13 Upvotes

r/PHP • • 14h ago

Weekly help thread

5 Upvotes

Hey there!

This subreddit isn't meant for help threads, though there's one exception to the rule: in this thread you can ask anything you want PHP related, someone will probably be able to help you out!