# Dosya ve Dizin Yapısı

```bash
liman@pardus:/liman/extensions/ornekeklentim$ tree
├── routes.php
├── composer.json
├── db.json
├── app
│   ├── Controllers
│   ├── Helpers
│   └── Tasks
├── lang
├── public
│   ├── css
│   └── js
├── scripts
├── vendor
└── views
    ├── hostname
    ├── layouts
    ├── runscript
    ├── sandbox
    ├── systeminfo
    ├── taskview
    ├── index.blade.php
    └── scripts.blade.php
```

* **routes.php**\
  Controller rotalarımızı tanımladığımız dosya.
* **composer.json**\
  Composer ile paket yükleyebilmek için bulunması gereken dosya.
* **db.json**\
  Eklentinizin veritabanı kullanması için gereken konfigürasyon dosyası.
* **app**\
  Eklentimizin arka yüzünü bulunduran klasör.&#x20;
  * **Controllers**\
    Kontrolcülerimizi bulunduran klasör. Arka yüzde çalışan işlemlerin hepsi bu klasör içerisindeki dosyalarda yazılır.
  * **Helpers/Helper.php**\
    Yardımcı fonksiyonlarınızı bu kısıma yazarsınız. Örneğin bir portun açık olup olmadığını kontrol eden fonksiyon.
  * **Tasks**\
    Görevleri oluşturduğumuz ve çalıştıracağı komutları belirlediğimiz klasör.
* **lang**\
  Yerelleştirme dosyalarını bulunduran bir klasör.
* **public**\
  Eklentinin içinde kullanılacak, tüm eklenti genelinde yüklenmesini istediğimiz JavaScript ve CSS dosyalarını ekleyebileceğimiz klasör. Örnek kullanım eklenti şablonunda mevcuttur.
* **scripts**\
  Bu klasöre runScript ile sistem üzerinde çalıştırmak istediğimiz betikleri koyarız. Örneğin sambaOlustur.py ve enableWinrm.ps1 gibi.
* **vendor**\
  Composer dosyalarını ve class autoloader içeren klasör. Bu klasörde düzenleme yapmayacağız.
* **views**\
  Bu klasörde açılan alt klasörler sekmeli eklenti yapısının her bir sekmesi içindir. Bu klasörler de içerisinde main.blade.php ve scripts.blade.php içermektedir. Scriptlerin Javascript yerine blade ile eklenmesinin sebebi yerelleştirme, dinamik rotalar ve PHP ile çıktı alınması gereken bazı kısımların varlığındandır.&#x20;
  * **index.blade.php & scripts.blade.php**\
    index dosyamız içerisinde sekmelerimizi oluştururuz ve sekmelerin alt viewlarını include ederiz. Scripts dosyamızda ise tüm tablar geneli çalışmasını istediğimiz PHP bağımlı Javascript kodlarımızı yazabiliriz.
