Skip to main content
Hari KT

Hari KT

Freelance full stack developer from Kerala, India — maintainer of Aura for PHP

👋 I am Hari KT, a freelance full stack web developer based in God’s own country—Kerala, India. I work with clients around the world, from solo founders to established product teams.

I am a passionate advocate for open-source software and regularly contribute back to the community through code, documentation, and financial support.


🧩 Maintainer of Aura for PHP
#

I am one of the maintainers of Aura, the PHP framework and library collection created by Paul M Jones—a prominent figure in the PHP community, author of Modernizing Legacy Applications in PHP, and well known for his work on PHP framework benchmarking and performance.

Aura’s packages are fully decoupled and dependency-free, so each one can be used standalone or composed into a full framework. I have contributed code, documentation and releases across the project for over a decade, and much of the writing on this blog comes out of that work.


💻 My Expertise
#

While my core expertise lies in PHP, I am driven by a continuous desire to learn and adapt to new technologies. Over the course of my career, I’ve had the opportunity to build diverse projects using modern tools and languages like Golang, NodeJS, ReactJS, and Python—including FastAPI for building APIs and Scrapy for web scraping and data extraction.

As a full stack developer I cover the whole path—database design, backend APIs, frontend interfaces, and deployment—so clients can hand over a problem rather than a task list.

🚀 What I Build
#

  • Cross-platform desktop applications with Tauri—native-feeling apps for Windows, macOS and Linux from a single ReactJS codebase.
  • Mobile applications for Android and iOS using React Native—such as the Tripti restaurant app, available on the Google Play Store.
  • Web applications and APIs in PHP, Golang and NodeJS, from database schema through to deployment.
  • Working with AI for vibe coding to rapidly prototype and build innovative software solutions.

Because desktop, mobile and web all share the same React skills in my toolkit, I can take a product across every platform without handing it to a different team for each one.


I love tackling complex problems and delivering high-quality, scalable solutions for my clients. I also share my knowledge and coding journey on my YouTube Channel.

Read more about me and my work →

Recent

Connecting to Magento via SOAP

·663 words·4 mins
In my earlier post I have shown how you can connect to Magento with REST api. In this post let us connect via SOAP. The below class acts like a proxy to call the magento soap api. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 <?php /** * * @author Hari K T * */ class My_Soap_Magento { /** * * Host name to connect * * @var string * */ protected $hostname; /** * * User name * * @var string * */ protected $username; /** * * API Key * * @var string * */ protected $apikey; /** * * Zend_Soap_Client * * @var Zend_Soap_Client * */ protected $client; protected $session; /** * * Constructor * * @param string $hostname The host name * * @param string $username The user name of the host * * @param string $apikey The apikey of the host * */ public function __construct($hostname, $username, $apikey) { $this->hostname = $hostname; $this->username = $username; $this->apikey = $apikey; } /** * * Magic method, the methods are named on the basis of Magento SOAP api * You don't need to pass the session as the first argument, for convience. * * @link http://www.magentocommerce.com/api/soap/introduction.html * * @param string $function * * @param mixed $args * * @return string | null * */ public function __call($function, $args) { $session = $this->getSession(); $params = array_merge(array($this->getSession()), $args); $result = call_user_func_array(array($this->getClient(), $function), $params); if ($result) { // I need to get as json return Zend_Json_Encoder::encode($result); } return null; } /** * * Get the session from logging in to the Magento server * * @return string * */ public function getSession() { if (! $this->session) { try { $this->session = $this->getClient()->login($this->username, $this->apikey); } catch (Exception $e) { } } return $this->session; } /** * * If we already have a session, we can set the session so it don't * need to login again and get the session. This helps to reduce the * call for login . * * @see getSession() * * @param string $session * * @return IM_Soap_Magento * */ public function setSession($session) { $this->session = $session; return $this; } /** * * Get the Zend_Soap_Client object * * @return Zend_Soap_Client * */ public function getClient() { if (! $this->client) { $endpoint = trim($this->hostname, '/') . '/api/v2_soap/?wsdl'; $this->client = new Zend_Soap_Client( $endpoint ); } return $this->client; } } In order to connect you want to create an object of the above class My_Soap_Magento. You need to get the username and api key from the magento host.

The Book on Aura

·184 words·1 min
There has been lot of requests to show how the individual packages in aura, can be made use inside the framework. So today I am happy to announce that there is a work in progress to make the framework documentation better. I have already started the work on the same. You can read the chapters online. The examples used in the book are also online at https://github.com/harikt/Example.Package I hope Something is better than nothing.

Magento and the REST API

·712 words·4 mins
Magento provides both REST and SOAP api. In this post I would like to concentrate on REST api to connect and get the products from magento shop. First we want to register an Oauth consumer to get the consumer key and secret key. Login to the admin of the magento shop and from the menu System->Web Services->REST - Oauth Consumers and add a new Ouath consumer.

Aura.Web: A Page Controller for MVC

·52 words·1 min
If you are new to the concept of MVC, or if you are planning to build your own framework, probably Aura.Web help you to do the same. Here is the article in phpmaster.com Aura.Web: Aura’s Page Controller for MVC. Probably you may also like the article Web Routing in PHP with Aura.Router.

Aura System Released Beta 5

·99 words·1 min
Yesterday Paul M Jones tagged the beta5 for the system repo. So you can download the system from http://auraphp.com/system/downloads/ via composer # Creating aura framework based projects has been made easy with composer. You can run php composer.phar create-project -s dev aura/system your-directory What it does is almost similar to git clone and installing via git as below