Skip to content

Commit

Permalink
README
Browse files Browse the repository at this point in the history
  • Loading branch information
ibnsultan committed Jan 15, 2024
1 parent f9e67a1 commit 360c614
Showing 1 changed file with 70 additions and 17 deletions.
87 changes: 70 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,103 @@
# πŸš€ PHPulse
<p style="text-align:center">
<img src="https://raw.githubusercontent.com/ibnsultan/PHPulse/main/builder/assets/build/logo.png" alt="PHPulse Logo" width="60" height="60" />
</p>

# PHPulse

PHPulse is an experimental PHP framework designed specifically for constructing desktop applications. 🌐 While currently in its proof-of-concept stage, it's important to note that using PHPulse for production development is not recommended at this time.

## πŸ› οΈ Supported Platforms

- βœ… Windows
- ❌ Linux
- ❌ Mac OS
- β˜‘οΈ Linux (Limited Support)
some component are yet complete ref (TODO. builder/main.js ln:12)
- ❌ Mac OS (Very Limited Support)
some component are yet complete ref (TODO. builder/main.js ln:12)

## 🧰 Tools Utilized

- PHP
- Electron
- NodeJS 18 LTS

## Getting Started
## 🚦 Project Overview

PHPulse combines the power of PHP and Electron to create desktop applications efficiently. With the right configuration any app can be swiftly packaged

The initial skeleton comes with a basic router to handle and designate http request to their respective allocations `public/router.php` which also the default entry of the application

**Folder Structure**

```
πŸ“ ProjectName
|-- πŸ›  builder
| |-- πŸ–Ό assets
| | |-- πŸ— build
| |-- πŸ“œ main.js
| |-- πŸ“„ config.json
| |-- πŸ“¦ package.json
|
|-- βš™οΈ console
| |-- 🐘 engine.php
| |-- πŸ€– helper.php
|
|-- 🌐 public
|
|-- πŸ“¦ vendor
|
|-- πŸ“‚ other-project-folder (php)
|-- πŸ“„ other-project-files (php)
|
|-- πŸ“„ .gitignore
|-- πŸ“¦ composer.json
|-- πŸ“„ config.json
|-- πŸš€ pulsar
```

## 😎 Getting Started

- Dowload the latest release from the release section
- Install electron builder
- Install electron packager

```bash
npm install -g electron-builder
npm install -g electron-packager
```
- To test and debug ur build run
- Initialize your application

```bash
npm start
php pulsar init
```

An interactive cli form will be displayed to configure your application details
- To test and debug ur app run

```bash
php pulsar serve
```
- To build the app run

```bash
npm run dist
php pulsar make
```

## 🚦 Project Overview
## ✨ Using a custom project

PHPulse combines the power of PHP and Electron to create desktop applications efficiently. With support for Windows and future plans for Linux and Mac OS, it aims to provide a versatile platform for developers.
To use a custom/existing project or with frameworks like laravel, make sure you first import the composer packages used i.e `symfony/filesystem` , in your project then copy everything else to your project except the `public` folder, along with the composer folders to avoid your files being overwritten

## ⏱️ Development Timeline
Make sure to inialize your project `php pulsar init` and also change your `config.json: entry_point` and `config.json: entry_file`

This current implementation took approximately 36 minutes to develop. πŸ•’
NOTE: Leave the `app` prefix in the `entry_point` and `entry_file` as it is.

So far I have thought of two effective ways to reimplement this projects which I am stil exploring.
## 🚧 Roadmap

The current version reflects **none** exploration of two reimplementations. Future developments will focus on refining and choosing the most efficient approaches that I am thinking of.
As the project evolves, it's important to note that the use `electron-packager` will be deprecated and more conventional electron packaging solutions like `electron-builder` or `forge` as it substitutes
## 🚧 Roadmap
- [ ] Migrating from packager to builder or forge
- [ ] Compressing php source to phar
- [ ] Custom inbuilt database
- [ ] PHP Code obfusications
## Contributing
As the project evolves, it's important to note that the direct use of PHP binary files will undergo significant changes and will likely be removed to avoid any redundancies and application conflicts to the consumers machine.
All contributions, issues and feature requests are welcome! Feel free to check [issues page](https://github.com/ibnsultan/PHPulse/issues).

0 comments on commit 360c614

Please sign in to comment.