PHPackages                             nagara/prosedural-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. nagara/prosedural-php

ActiveProject[Framework](/categories/framework)

nagara/prosedural-php
=====================

PROSEDURAL PHP PROJECT

1.0.2(4y ago)08MITCSS

Since Jun 6Pushed 4y ago1 watchersCompare

[ Source](https://github.com/naagaraa/prosedural-php)[ Packagist](https://packagist.org/packages/nagara/prosedural-php)[ Docs](https://github.com/naagaraa/prosedural-php)[ RSS](/packages/nagara-prosedural-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (3)Versions (4)Used By (0)

Prosedural PHP Project
======================

[](#prosedural-php-project)

###### Latar belakang

[](#latar-belakang)

project ini dibuat untuk alternative dari mini mvc php native project, pada mini mvc itu ditulis dengan konsep object oriented programing dan type connectionnya menggunakan PDO atau PHP data obejct, namun untuk prosedural php project ditulis menggunakan consept prosedural dan type connectionnya menggunakan mysqli dan object. dengan structur foldernya mengadopsi pattern MVC mode view controller yang ditulis secara functional porgraming.

###### Untuk hatters

[](#untuk-hatters)

this repo i am making for my documentation learning. i dont care what u say. if you not like or not agree my consept programing i don't care bro hahaha. if this repo can't solve u problem, it mean u problem not same with me. and put documentation in description, check the readme.md. Is your problem agree ? pliss readme

Author dan Contribution
-----------------------

[](#author-dan-contribution)

- **Naagaraa Mahasiswa Darma Persada dan Content Creator**
- [ youtube channel ](https://www.youtube.com/channel/UCYsZhw6Mlk23Q-nUPP9t1YA?view_as=subscriber)

Documentation
-------------

[](#documentation)

- official documentation on going

HOW TO USE / INSTALL
--------------------

[](#how-to-use--install)

##### REQUIRETMENT

[](#requiretment)

- PHP VERSION &gt;= 7.3.2
- Install git-client atau cli
- Install php xdebug (optional)
- install composer

##### INSTALL menggunakan git cli

[](#install-menggunakan-git-cli)

1. *install phpxdebug* (optional : agar pesan error debug menjadi rapih/ pretty )
2. *clone myrepository mini dfv php native*

    ```
    git clone https://github.com/naagaraa/prosedural-php.git
    ```
3. *composer install*

    ```
    prosedural-php > composer install
    ```

##### INSTALL menggunakan composer

[](#install-menggunakan-composer)

1. *install phpxdebug* (optional : agar pesan error debug menjadi rapih/ pretty )
2. *buka terminal di htdocs pada xampp/laragon atau dir publicnya*

    ```
    PS C:\xampp\htdocs>
    ```
3. *install project*

     \*\* PS C:\\xampp\\htdocs&gt; composer create-project nagara/prosedural-php namaproject\*\*
    ```
    PS C:\xampp\htdocs> composer create-project nagara/prosedural-php applikasi-saya
    ```

Structur / Arsitekture
----------------------

[](#structur--arsitekture)

oke berikut ini adalah gaya structur folder yang gue pakai

- *\#apps*
    - *\#config*
    - *\#controller*
    - *\#model*
    - *\#view*
    - *\#htaccess*
    - *\#init.php*
- \*#database
    - *\#error\_vew.php*
    - *\#function\_error.php*
- *\#public*
    - *\#css*
    - *\#js*
    - *\#image*
- *\#routes*
    - *\#function*
    - *\#getonvfile*
    - *\#index*
    - *\#routing*
- *\#storage*
    - *\#pdf*
    - *\#doc*
    - *\#img*
- *\#.env*
- *\#.env.example*
- *\#.htaccess*
- *\#index.php*

Penjelasan Singkat
------------------

[](#penjelasan-singkat)

###### apps

[](#apps)

folder apps adalah nanti dimana sebuah project small web dirancang, atau di atur mulai dari dcontroller, model dan view sebagai tampilannya.

###### config

[](#config)

folder config ini mengatur segala configurasi pada database mysqli, membuat constand dan menjalankan config untuk memanggil function connection database.

###### database

[](#database)

folder database ini adalah sebuah cheatsheet sintax mysqli

###### controller

[](#controller)

folder controller ini adalah bentuk prosedural functional programing

###### routes

[](#routes)

folder routes ini adalah untuk mengatur path atau arah routing pada apps

###### view

[](#view)

folder view ini adalah dimana hal yang berkaitan dengan html atau template yang akan di tampilkan pada halaman user

###### .htaccess

[](#htaccess)

htaccess disini di set agar tidak bisa membuka folder corenya yaitu apps

###### autoload.php

[](#autoloadphp)

autoload disini adalah untuk memanggil sebuah loading file pada folder config dengan urutan database yang pertama di require

###### init.php

[](#initphp)

untuk memanggil file config pada folder apps

###### public

[](#public)

folder public untuk meletakan asset seperti css, js dan image

###### storage

[](#storage)

folder storage adalah tempat file hasil upload disimpan

###### .htaccess

[](#htaccess-1)

default akses remove index.php for first open atau ketika pertama dibuka

###### index.php

[](#indexphp)

untuk memanggil file autoload.php

Basic Usage
-----------

[](#basic-usage)

connection database
-------------------

[](#connection-database)

untuk config pada database diletakan pada file .env

```

DB_HOST=localhost
DB_PORT=3306
DB_NAME=namadatabasenya
DB_USER=userdatabasenya
DB_PASS=

```

mengatur path url dan apps
--------------------------

[](#mengatur-path-url-dan-apps)

untuk mengatur config path url dan apps juga terdapat pada file .env

```

# configurasi Path here
APP_NAME=prosedural-php-native
APP_FOLDER=/prosedural-php-native/
APP_HOST=http://localhost/
APP_URL=http://localhost/prosedural-php-native/

```

### routes

[](#routes-1)

mendefiniskan arah route

```
# example :
# $router->get('pattern', function() {
#    view("nama_view");
# });

$router->get('/', function() {
    view("welcome");
});

$router->get('login', function() {
    view("auth/login");
});
```

controller
----------

[](#controller-1)

buat nama controllernya di folder apps &gt; controller, lalu buat function function didalamnnya

```
# example

function title()
{
   $title = 'home page';
   return $title;
}

/**
 * mencetak nilai string deskripsi
 * @return string
 */
function deskripsi()
{
  $deskripsi = "halaman home page";
}
```

model
-----

[](#model)

buat model untuk berinteraksi dengan query database,

```
# example model

function get_all_data()
{
    # call connection ke database
    $conn = database();

    # query sintax pada database
    $sql = "SELECT * FROM users";

    # myqli execute
    $result = $conn->query($sql);

    #return data
    return $result->fetch_all(MYSQLI_ASSOC);
}

/**
 * docuemntations return singe data
 * @return object
 */

function get_single_data_by_condition($id)
{
    # call connection ke database
    $conn = database();

    # query sintax pada database
    $sql = "SELECT * FROM users WHERE id=$id ";

    # myqli execute
    $result = $conn->query($sql);

     #return data
    return $result->fetch_object();
}
```

memanggil connection database
-----------------------------

[](#memanggil-connection-database)

untuk memanggil connection pada database , cukup panggil function database() dan save ke dalam variabel, memanggil connection akan dibutuhkan ketika berinteraksi query dan model .

```
# call connection ke database
$conn = database();
```

memanggil model pada controller
-------------------------------

[](#memanggil-model-pada-controller)

untuk memanggil model pada controller bisa dilakukan dengan melakukan load file model dengan function model("nama\_modelnya");

```
# example controller user

function getDataUser()
{
  # load model di pada function
  model("userModel);

  # panggil function yang ada pada model
  $data = get_all_data();

  # mengembalikan nilai
  return $data;
}
```

memanggil controller pada view
------------------------------

[](#memanggil-controller-pada-view)

untuk memanggil pada controller dan menggunakan semua function yang sudah di deklarasi bisa melakukan call controller dengan function controller("namacontrollernya") di paling awal berkas view

```

>

some code html here
...

```

memanggil view lainnya
----------------------

[](#memanggil-view-lainnya)

untuk memanggil view lainnya bisa gunakan function view("nama\_viewnya),

```
# example

    some html code
    ...

```

memanggil asset
---------------

[](#memanggil-asset)

untuk memanggil asset pada folder public gunakan function asset("namaassetnya"), asset bisa berupa berkas css, js, dan gambar biasanya di panggil pada berkas view.

```
# example

```

berkas controller model penduduk.php

```
/**
 * docuemntations return singe data
 * @return object
 */

function get_user_data_by($id)
{
    $conn = database();

    // sintac query
    $sql = "SELECT * FROM users WHERE id=$id ";
    $result = $conn->query($sql);
    return $result->fetch_object(); // return object
}
```

membuat templating atau memecah template
----------------------------------------

[](#membuat-templating-atau-memecah-template)

untuk memecah bagian HTML menjadi beberapa bagian seperti header, footer dan content, itu disebut templating, untuk membuat templating bisa memanggil function view

example :

view

- auth
    - layout
        - header.php
        - footer.php
    - pages
        - login.php

##### controller di load di awal view sebelum meletakan berkas view

[](#controller-di-load-di-awal-view-sebelum-meletakan-berkas-view)

```

# content here ...
```

berkas login.php

```

        # content here ...

```

berkas header.php

```
>
