PHPackages                             burakcantemizel/yii2-fdcys - 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. [Admin Panels](/categories/admin)
4. /
5. burakcantemizel/yii2-fdcys

ActiveYii2-extension[Admin Panels](/categories/admin)

burakcantemizel/yii2-fdcys
==========================

Yii2 Firma Departman Calisan Yonetim Sistemi Modulu

07PHP

Since Jan 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/burakcantemizel/yii2-fdcys)[ Packagist](https://packagist.org/packages/burakcantemizel/yii2-fdcys)[ RSS](/packages/burakcantemizel-yii2-fdcys/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

yii2-fdcys
==========

[](#yii2-fdcys)

Firma-Departman-Çalışan Yönetim Sistemi Modülü

Burak Can Temizel 180202024

Hakkında
========

[](#hakkında)

Bu modül aracılığıyla firmalar yaratabilir, bu firmalara bağlı departmanlar oluşturabilir ve departmanlar altında da çalışan insanların bilgilerini tutabilirsiniz. Modül İnternet Programcılığı dersinin uygulamasıdır. İlerleyen kısmınlarda daha detaylı bilgi verilecektir.

Kurulum
=======

[](#kurulum)

Modül kurulumu vagrant ve yii2-advanced template'i üzerinden anlatılacaktır. Modül kurulumu için öncelikle vagrant üzerinde çalışan yii2-advanced kurulumunu gerçekleştiriniz.

ssh veya vagrant ssh ile vagrant üzerinde yii projenizin ana dizinine gidiniz.(Örneğin /var/www/advanced)

```
composer require --prefer-dist burakcantemizel/yii2-fdcys "dev-master"

```

komutu ile packagist üzerinden modül kurulumunu gerçekleştiriniz.

Daha sonrasında yii projenizin ana dizininde backend\\config\\main.php dosyasını düzenlemek için açınız. Aşağıda gösterildiği şekilde düzenlemeyi yapınız.

```
'modules' => [
    ...
    'fdcys' => [
        'class' => 'burakcantemizel\\fdcys\Module',
    ],
],

```

**Önemli Not: Burada önemli bir nokta "\\f" özel karakter olduğu için slash karakteri kaçış karakteri olarak girilmiştir buna dikkat ediniz.**

Composer kurulumuyla ilgili problem yaşarsanız yii projenizin ana dizininde vendor\\burakcantemizel klasörünü oluşturup git reposunu clonelayabilirsiniz.

Modülün çalışabilmesi için son olarak migration işleminin gerçekleştirilmesi gereklidir.

ssh bağlantısı ile vagrant üzerinde proje ana dizinindeyken alttaki komut çalıştırılmalıdır.

```
php yii migrate/up --migrationPath=@vendor/burakcantemizel/yii2-fdcys/src/migrations

```

Artık migration işlemimiz gerçekleştirilmiştir. Modülümüz çalışır hale gelmiştir.

Modülü test etmek için tarayıcınızda siteAdresi/backend/web/index.php?r=fdcys adresine gidiniz. Modül anasayfasını karşınızda göreceksiniz.

Modül Tanıtımı ve Proje Raporu
==============================

[](#modül-tanıtımı-ve-proje-raporu)

Bu kısımda modülün içeriği, derslerin uygulamaları vs. gösterilecektir ve bazı kısımlar özet olarak anlatılacaktır.

Migrations
----------

[](#migrations)

Modül içerisindeki migration dosyasında modül içerisinde kullanılacak 3 adet tablo oluşturulmuştur. Tablolar arasında foreign keyler ile ilişkiler kurulmuştur ve anahtar değerler için indekslemeler yapılmıştır. Firmalar, Departmanlar ve Çalışanlar için 3 adet tablo bulunmaktadır. Tablolar arasındaki ilişkiler aşağıda gösterildiği şekildedir. 3 adet foreign key kullanılmıştır.

[![](readmeFiles/iliskiler.jpg)](readmeFiles/iliskiler.jpg)

Daha sonra model oluşturulurken bu ilişkisel şemalar kullanılacaktır.

Gii, Models ve CRUD
-------------------

[](#gii-models-ve-crud)

Her tablo için migration ile tanımlanan ilişkisel özellikler baz alınarak gii üzerinden modeller oluşturulmuştur. İlişkilere göre her model için farklı tekil ve çoğul activeQuery metotları oluşmuştur. Örneğin Departmanlar tablosu için;

```
     /**
     * Gets query for [[Calisanlars]].
     *
     * @return \yii\db\ActiveQuery
     */
    public function getCalisanlars()
    {
        return $this->hasMany(Calisanlar::className(), ['departmanlar_departman_id' => 'departman_id']);
    }

    /**
     * Gets query for [[FirmalarFirma]].
     *
     * @return \yii\db\ActiveQuery
     */
    public function getFirmalarFirma()
    {
        return $this->hasOne(Firmalar::className(), ['firma_id' => 'firmalar_firma_id']);
    }

```

Daha sonra temel işlevsellik İçin Gii ile bu modeller üzerinden CRUD oluşturulmuştur. CRUD oluşturulurken controllerlar ve viewlarda generate edilmiştir. Daha sonrasında gerekli düzenlemelerle tablolar birbirine bağlanacaktır.

Forms
-----

[](#forms)

Formlar üzerinde çeşitli düzenlemeler yapılmıştır. Örneğin çalışanlar \_form.php için ilişkisel id columnları aşağıdaki şekilde düzenlenmiştir. ArrayHelper, DropDownList gibi çeşitli yapılar kullanılarak ilişkili tablodan id ye karşılık gelen ismin seçilebilmesi sağlanmıştır.

```

```

aynı şekilde çalışanlar index.php içerisined GridView widgetı düzenlenerek ilişkisel id kısımları karşılık gelen isimlerle değiştirilmiştir.

```
