> For the complete documentation index, see [llms.txt](https://docs.liman.dev/eklenti-gelistirme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.liman.dev/eklenti-gelistirme/gelistirme/sunucuda-betik-calistirma.md).

# Sunucuda Betik Çalıştırmak

## runScript fonksiyonu

Sunucumuzda betik çalıştırmak için runScript yardımcı fonksiyonumuzu kullanmaktayız. Bu fonksiyon eklentinin eklendiği sistem üzerinde Python, Bash ve Powershell betiklerini çalıştırmamızı sağlamaktadır.

### Gerekli Ortamı Hazırlama

runScript fonksiyonunun çalışabilmesi için eklenti dizininiz altında bir `scripts` klasörü oluşturmamız ve betikleri bu klasörün içerisine yüklememiz gerekmektedir.&#x20;

![Betiklerin Bulunduğu Klasör](/files/-Mg4cMu4E6zfld5zl4g_)

### Kullanım Örneği

runScript fonksiyonunu kullanabilmek için bir controller oluşturmamız gerekmektedir. Bu controlleri doğru şekilde oluşturup rota tanımlamasını doğru şekilde yaptığımızı varsayalım.

```php
public function run()
{
    // runScript function
    // 1st parameter: filename under scripts folder STRING
    // 2nd parameter: parameters STRING
    // 3nd parameter: run as sudo BOOL
    $script = runScript("example.py", "", false);
    return respond($script, 200);
}
```

| Parametre         | Açıklama                                   | Veri Tipi |
| ----------------- | ------------------------------------------ | --------- |
| Birinci Parametre | scripts klasörü altındaki dosya adını alır | String    |
| İkinci Parametre  | scripte göndereceğimiz argümanlar          | String    |
| Üçüncü Parametre  | sudo olarak mı çalıştırılmalıdır?          | Boolean   |

#### Örnek Python Kullanımı

Controllerda tanımlamalarımızı yapıp ardından JavaScript tarafında request yardımcı fonksiyonumuz ile çağrımızı yaptığımızda betik çıktımızı alabiliriz.&#x20;

```python
#!/usr/bin/python3
print("Hello world!")
```

Bu Python betiğini yukarıdaki şekilde controller kısmında çağırıp önyüz çağrısı sonucu şu tarz bir çıktı almaktayız.

![Betik Çıktısı](/files/-Mg4gr34mdqsUubp0ZjQ)

**Bu örneği PHP 7.3 + OOP Training eklenti şablonunda bulabilirsiniz.**
