Skip to content

Instantly share code, notes, and snippets.

@jacques
Last active January 15, 2020 06:13
Show Gist options
  • Save jacques/ab1d2ef144ab214ae56ce4869487f848 to your computer and use it in GitHub Desktop.
Save jacques/ab1d2ef144ab214ae56ce4869487f848 to your computer and use it in GitHub Desktop.

Rough Slim 1.x / 2.x to 3.x migration

Very rough script to aid with migrating controllers presently from Slim 2.x to 3.x.

For 1.x move code to controllers first.

Rough Layout

src
   \Controllers
   \Exporters
   \Jobs
   \Models
   \Parsers
   \Validators
#!/bin/bash
#
# Helper to upgrade Slim 1.x / 2.x projects to Slim 3.x
#
# Copyright (c) 2020 Jacques Marnweeck. All rights strictly reserved.
#
set -o errexit
export PS4='${BASH_SOURCE}:${LINENO}: '
set -o xtrace
#
# $app = \Slim\Slim::getInstance();
#
gsed -i'' -e '/Slim::getInstance();/d' *.php
#
# if ($app->request()->isPost()) {
#
gsed -i'' -e '/app->request()->isPost()/s/app->request()/request/g' *.php
#
# $post = $app->request()->post();
#
gsed -i'' -e '/app->request()->post()/s/app->request()->post()/request->getParsedBody()/g' *.php
#
# $data = Pagination::paginate($app, 0, 200, 1, $query);
#
gsed -i'' -e '/Pagination::paginate/s/app/request/' *.php
#
# $app->notFound();
#
gsed -i'' -e '/\$app->notFound();/s/\$app->notFound();/throw new NotFoundException(\$request, \$response);/g' *.php
gsed -i'' -e '/throw NotFoundException;/s/throw NotFoundException;/throw new NotFoundException;/g' *.php
gsed -i'' -e '/throw new NotFoundException;/s/throw new NotFoundException;/throw new NotFoundException(\$request, \$response);/g' *.php
#
# $app->redirect(
#
gsed -i'' -e '/\$app->redirect(/s/\$app->redirect(/return \$response->withRedirect(/g' *.php
#
# $app->urlFor(
#
gsed -i'' -e '/\$app->urlFor(/s/\$app->urlFor/\$this->container->get('\''router'\'')->pathFor/g' *.php
#
# $app->request_id
#
gsed -i'' -e '/\$app->request_id/s/\$app->request_id/$request->getAttribute('\''request_id'\'')/g' *.php
#
# $request_id
#
gsed -i'' -e '/\$request_id/s/\$request_id/$request->getAttribute('\''request_id'\'')/g' *.php
#
# return;
#
gsed -i'' -e '/return;/d' *.php
#
# Smarty
#
#
# Remove $app-> prefix infornt of templates
#
gsed -i'' -e '/app->template/s/app->//g' *.php
#
# Logger for monologger uses a container.
#
gsed -i'' -e '/app->log/s/app->log/logger/g' *.php
#
# Need to return \Slim\Http\Response with the rendered template
#
gsed -i'' -e '/\$template->display/s/);/));/g' *.php
gsed -i'' -e '/\$template->display/s/\$template->display/return \$response->write(\$template->fetch/g' *.php
#
# $id -> $args['id'];
#
gsed -i'' -e '/\$id/s/\$id/\$args['\''id'\'']/g' *.php
gsed -i'' -e '/\$bank_account_id/s/\$bank_account_id/\$args['\''bank_account_id'\'']/g' *.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment