PHP code example of arefshojaei / lite-php
1. Go to this page and download the library: Download arefshojaei/lite-php library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
arefshojaei / lite-php example snippets
# Before
once "../console/commands/package/_main.php";
# After + without using '.php' ext
import("@modules/user/_controller")
import("@commands/package/_main")
createAlias([
# Guide
"@<alias>" => dirname(__DIR__) . "path",
# Example
"@core" => dirname(__DIR__) . "/core",
"@modules" => dirname(__DIR__) . "/modules",
...
]);
import("@core/modules/config/createConfig");
createConfig("name", [
"key" => "value"
]);
import("@core/hooks/useConfig");
# Usage
useConfig("name.key");
import("@core/modules/enum/createEnum");
createEnum("name", [
"KEY" => "value"
]);
import("@core/hooks/useEnum");
# Usage
useEnum("name::KEY");
import("@core/modules/plugin/createPlugin");
# Usage
createPlugin("name", function ($params) {}, false);
"plugins" => [
# Usage
registerPlugin("name"),
# Examples
registerPlugin("logger", ["level" => "short"]),
registerPlugin("security"),
registerPlugin("cors"),
],
import("@core/modules/plugin/createPlugin");
# Usage
createPlugin("name", function () {});
import("@core/hooks/usePlugin");
# Usage
list(...) = usePlugin("name");
import("@core/modules/validator/createValidator");
createValidator("post", [
"id" => [
"type" => "int",
"
import("@core/hooks/useValidator");
# Usage
$schema = "post",
$post = [
"id" => 1,
"title" => "Thanks for using the Micro Framework.",
];
$isValid = useValidator($schema, $post);
foreach ($users as $user):
import("@modules/user/_controller")
$user = getUser();
print_r($user);
# Usage
import("@core/helpers/route");
# Single Route
addRoute("GET", "/user", "showUser"); # /user
# Group Route
groupRoute("/page", function() {
addRoute("GET", "/", "__app__index"); # /page/home
addRoute("GET", "/users", "__user__index"); # /page/users
addRoute("GET", "/courses", "__course__index"); # /page/courses
});
$user = [
"id" => 1,
"name" => "Robert",
"skills" => ["PHP", ...]
];
# Usage
dd($user); # to dump and die
dd($user, false); # just to dump and no die process
import("@core/helpers/parse");
$file = "links.txt";
# Usage
$links = prase($file);
$links = @prase($file); # use the @ to get boolean or content if you don't want to get error
forach ($links as $link) {
echo "[Link] {$link}" . PHP_EOL;
}
import("@core/helpers/view");
# Example 1
view("welcome");
# Example 2
$user = [
"id" => 267
"title" => "User Page",
"name" => "Robert",
]
view("user", $user);
# Usage
import("@core/helpers/command");
# Single Command
addCommand("database", fn() => "Hi from Lite PHP", "Database status"); # php cli database
# Group Command
groupCommand("fake:", function() {
addCommand("city", "action", "description"); # php cli fake:city
addCommand("company", "action", "description"); # php cli fake:company
addCommand("user", "action", "description"); # php cli fake:user
addCommand("book", "action", "description"); # php cli fake:book
});
# Usage
import("@core/helpers/test");
# Definition
describe('test-info', function() {
it("test-description", function() {
# use Asserts ...
# Read "core/helpers/assertion.php" to use in this logic code !
});
});
# Usage
# Test All Modules
php cli test
# Test Single Module
php cli test [module-name]
import("@core/helpers/abort");
# Usage
function bootstrap() {
abort(500, "Internal Server Error", ["package" => "LITE PHP"]);
}
import("@core/helpers/build");
# Guide
buildURL("/products"); # [pre defined => (host:port)] + route
buildPath("/resources", "/lang/en/public"); # base path + path + file ext
import("@core/helpers/translate");
# Text: Welcome message
"Translated: " . __("welcome"); # پیام خوش آمد گویی
# Text: Thanks :name for using :product
"Translated: " . __("introduce", [
"name" => "رابرت",
"product" => "This package"
]); # ممنون رابرت برای استفاده کردن از این پکیج
import("@core/helpers/url");
# Get base URL
baseURL(); # Http://localhost:5000
# Get current route
url(); # /product/257
# Get current url
origin(); # Http://localhost:5000/product/257
# Build pointer Route to redirect to another route
toRoute("/users"); # Http://localhost:5000/users
import("@core/helpers/assets");
# Get asset path
asset("/css/grid.css"); # resources/assets/css/grid.css
# CSS asset path
asset("/css/grid.css"); # resources/assets/css/grid.css
css("grid"); # resources/assets/css/grid.css
# JS asset path
asset("/js/state.js"); # resources/assets/js/state.js
js("state"); # resources/assets/js/state.js
# Image asset path
img("user.jpeg"); # resources/assets/img/user.jpeg
# Icon asset path
icon("logo.svg"); # resources/assets/img/logo.svg
import("@core/helpers/validator");
# Email validation
$email_1 = "[email protected] ";
$email_2 = "[email protected] ";
isEmail($email_1); # true
isEmail($email_2); # false
# URL validation
$url_1 = "http://localhost:5000";
$url_2 = "/categories/mobile/54673124";
isURL($url_1); # true
isURL($url_2); # false
import("@core/helpers/asserts");
assertTrue(""); # false
assertTrue("This is a message"); # true
assertTrue(0); # false
assertTrue(1); # true
assertEmpty([]) # true
assertEmpty([1,2,3]) # false
# and more assert functions....
import("@core/hooks/useHTTP");
function inspectRequest() {
$method = useHTTP("REQUEST_METHOD");
echo $method; # GET, POST, PUT, PATCH, DELETE
}
import("@core/hooks/useGET");
function inspectRequest() {
$username = useGET("username");
$password = useGET("password");
dd([
"username" => $username,
"password" => $password
]);
}
import("@core/hooks/usePOST");
function inspectRequest() {
$token = usePOST("token");
echo $token;
}
# Send GET Request
import("@core/hooks/useFetch");
$response = useFetch("http://domain.com/end-point");
dd($response);
# Send POST Request
import("@core/hooks/useFetch");
$params = [
"method" => "POST",
"body" => [],
"headers" => [],
];
$response = useFetch("http://domain.com/end-point", $params);
dd($response);
# Send PUT Request
import("@core/hooks/useFetch");
$params = [
"method" => "PUT",
"body" => [],
"headers" => [],
];
$response = useFetch("http://domain.com/end-point", $params);
dd($response);
# Send PATCH Request
import("@core/hooks/useFetch");
$params = [
"method" => "PATCH",
"body" => [],
"headers" => [],
];
$response = useFetch("http://domain.com/end-point", $params);
dd($response);
# Send DELETE Request
import("@core/hooks/useFetch");
$params = [
"method" => "DELETE",
"body" => [],
"headers" => [],
];
$response = useFetch("http://domain.com/end-point", $params);
dd($response);
import("@core/hooks/useID");
function createUser($name, $email, $passowrd) {
$id = useID();
# logic code ...
}
import("@core/hooks/useConfig");
function createUser($name, $email, $passowrd) {
$applicationName = useConfig("app.name");
# logic code ...
}
import("@core/hooks/useEnum");
function createUser($name, $email, $passowrd) {
# User SQL Table
$userTable = useEnum("User::TABLE");
# HTTP Statuses
$HTTP_200 = useEnum("HTTP::OK");
$HTTP_201 = useEnum("HTTP::SUCCESS");
$HTTP_400 = useEnum("HTTP::BAD");
# logic code ...
}
import("@core/hooks/useState");
function createUser($id, $name, $email, $password) {
$user = [
"email" => $email,
"password" => $password
];
# First way => key & value
useState("users", $user);
# Second way => nested keys & value
useState("users.{$name}", $user);
# Third way => nested keys & value
useState("users.{$id}.{$name}", $user);
# logic code ...
}
import("@core/hooks/useGlobal");
function getPlugins() {
# First way => without nested key
$plugins = useGlobal("plugins"); # $GLOBALS['container']['plugins']
# Second way => with nested keys
$runnerPlugins = useGlobal("plugins.runner"); # $GLOBALS['container']['plugins']['runner']
$usagePlugins = useGlobal("plugins.usage"); # $GLOBALS['container']['plugins']['usage']
# logic code ...
}
import("@core/hooks/useHash");
function createUser($name, $email, $passowrd) {
$hashedPassword = useHash($password);
# logic code ...
}
import("@core/hooks/useVerifyPassword");
function checkPassword($password, $hashedPassowrd) {
$isValidPassword = useVerifyPassword($password, $hashedPassword);
# logic code ...
}
import("@core/hooks/useHTML");
function getSiteHtmlContent($url) {
$html = useHTML($url);
# logic code ...
}
import("@core/hooks/useMode");
function getApplicationModeStatus() {
$mode = useMode(); # Production | Development
# logic code ...
}
import("@core/hooks/useEnv");
function createDatabaseConnection() {
$db = useEnv("DATABASE_DB");
$host = useEnv("DATABASE_HOST");
$username = useEnv("DATABASE_USER");
$password = useEnv("DATABASE_PASS");
# logic code ...
}
import("@core/hooks/useLog");
function showDashboardPage() {
useLog("Admin Logged in!");
# logic code ...
}
import("@core/hooks/usePlugin");
function getShortLink($longURL) {
[...] = usePlugin("shortLink");
# logic code ...
}
import("@core/hooks/useQuery");
function createUser($name, $email, $passowrd) {
useQuery("INSERT INTO `users` (name, email, password) VALUES (?, ?, ?)", [$name, $email, $passowrd]);
# logic code ...
}
function doLogin($email, $passowrd) {
$user = useQuery("SELECT * FROM `users` WHERE email = ?", [$email]);
dd($user);
# logic code ...
}
import("@core/hooks/useResponse");
function showLoginPage() {
$form = "
<form action='' method='POST'>
<input type='email' name='email' />
<input type='password' name='password' />
<button type='submit'>Login</button>
</form>
";
return useResponse("html", $form);
}
import("@core/hooks/useRequest");
function inspectRequest() {
$host = useRequest("host"); # site.com
$ip = useRequest("ip"); # 192.168.1.1
$method = useRequest("method"); # GET | POST | PUT | PATCH | DELETE
$protocol = useRequest("protocol"); # HTTP | HTTPS
$query = useRequest("query"); # LIKE /product/?category='mobile'&limit=10
$route = useRequest("route"); # /products
$routeParams = useRequest("params"); # /product/{id} => ["id" => 171]
$userAgent = useRequest("userAgent"); # ...
# logic code ...
}
import("@core/hooks/useRedirect");
function inspectRequest() {
$isValidUser = true;
if($isValidUser) {
useRedirect("/dashboard");
}
# logic code ...
}
import("@core/hooks/useURL");
function inspectRequest() {
$parsedURL = useURL("http://localhost:5000/api/v1/products/?limit=25");
dd($parsedURL);
# logic code ...
}
import("@core/hooks/useBody");
function inspectRequest() {
$token = useBody("token");
# logic code ...
}
import("@core/hooks/useHeader");
function inspectRequest() {
$fakeUserAgent = "...";
# add
useHeader("HTTP_USER_AGENT", $fakeUserAgent);
# remove
useHeader("X-Powered-By");
# logic code ...
}
import("@core/hooks/useMatch");
function isValidEmail($email) {
$regexPattern = "/^\[email protected] $/";
$result = useMatch($regexPattern, $email);
dd($result);
# logic code ...
}
import("@core/hooks/useFlash");
function doLogin() {
useFlash("login", "Invalid Email or Password!");
# logic code ...
}
import("@core/hooks/useFile");
function addProfile() {
$profile = useFile("profile");
# logic code ...
}
import("@core/hooks/useFile");
import("@core/hooks/useUpload");
function uploadProfile() {
$profile = useFile("profile");
$result = useUpload($profile);
# logic code ...
}
import("@core/hooks/useCache");
# Cache Data
function cachePostsData() {
$posts = [...];
useCache("posts", $posts);
# logic code ...
}
# Get cached data
function getCachedPostsData() {
$posts = useCache("posts");
# logic code ...
}
import("@core/hooks/useCookie");
# Set cookie
useCookie("darkMode", true);
# Get the cookie
$darkModeState = useCookie("darkMode"); # true
# Set cookie params
useCookie("darkMode", rand(), [
"expireTime" => "",
"path" => "",
"domain" => "",
"secure" => "",
"httpOnly" => ""
]);
import("@core/hooks/useSession");
# Set session
useSession("isLoggedIn", true);
# Get the session
$loginState = useSession("isLoggedIn"); # true
# Get list of all sessions
$sessions = useSession();
import("@core/hooks/useToken");
function doLogin() {
$user = [
"username" => "Robert",
"password" => 12345
];
$token = useToken($user, "secretKey");
# logic code ...
}
import("@core/hooks/useVerifyToken");
function exportLogs() {
$token = "...";
$isValidUser = useVerifyToken($token,"secretKey");
# logic code ...
}
import("@core/hooks/useValidator");
function validatePost() {
$schema = "post";
$post = [
"id" => 1,
"title" => "What is LITE PHP?",
"body" => "Micro PHP Freamework!"
];
$isValid = useValidator($schema, $post);
# logic code ...
}
import("@core/hooks/useAction");
function addTodo() {
useAction("ADD_TODO");
$todo = [
"id" => rand(),
"title" => "Done login page",
"timestamp" => time()
];
# logic code ...
}
import("@core/hooks/useRecord");
function addTodo() {
$todo = [
"id" => rand(),
"timestamp" => time()
];
useRecord("todos", $todo["title"], $todo["timestamp"]);
# logic code ...
}
import("@core/hooks/useTable");
function getTimestamp() {
$result = useTable('actions', 'NEW_TASK');
# Logic code ...
}
import("@core/hooks/useTable");
function deleteAction() {
$result = useTable('actions', 'NEW_TASK', $action = TABLE_DELETE_ACTION);
# Logic code ...
}
bash
composer create-project arefshojaei/lite-php
bash
|- bootstrap/
|
|- console/
|
|- core/
|
|- hooks/
|
|- modules/
|
|- plugins/
|
|- public/
|
|- resources/
|
|- storage/
|
|
|- .env.example
|- .gitignore
|- .htaccess
|- cli
|- composer.json
|- gulpfile.mjs
|- init
|- package.json
|- README.md
|- robots.txt
|- server.php
hbs
@foreach ($users as $user)
<div class="user-card">
<span>ID: {{ $user['id'] }} </span>
<h3>Name: {{ $user['name'] }} </h3>
<p>CV: {{ $user['cv'] }} </p>
</div>
@endforeach
hbs
{{!-- Example-1 --}}
@style
* {
box-sizing: border-box;
color : #e5e5e5;
}
@endStyle
@linkStyle("https://domain.com/bootstrap/styles/grid.min.css")
{{!-- Example-2 --}}
@script
const username = promt('Enter your userName:')
alert(username)
@endscript
@linkScript("https://domain.com/jquery/jquery.min.css")
{{!-- Example-3 --}}
@php
$message = "Welcome to Lite PHP"
echo $message;
@endphp
{{!-- Example-4 --}}
@dump($message, true, [])
@dd([1,2,3,4,5])