PHP CodeIgniter MVC Framework



Benzer belgeler
CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

ÖZGÜR YAZILIMLAR İLE J2EE

Web Uygulamaları Mimarileri ve Güvenliği

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

Android e Giriş. Öğr.Gör. Utku SOBUTAY

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İNTERNET PROGRAMCILIĞI - II

Client Server Database

Güvenlik Java ve Web Uygulama Güvenliği

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Bölüm 10: PHP ile Veritabanı Uygulamaları

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

One ASP.NET. 5 bileşen barındırmaktadır. Web Forms Model View Controller (MVC) Web Pages Web API SignalR

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

LDAP VE WORDPRESS İLE

Zope Uygulama Sunucusu

Firma Yazılımı v2.00 Kullanım Kılavuzu

İnternet Programcılığı

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

1 İÇERİK YÖNETİM SİSTEMLERİ VE JOOMLA 1. İçerik Yönetim Sistemi (CMS) Nedir? 1. Neden Joomla? 2. Joomla nın Tarihi 3. Joomla nın Anlamı & Logosu 4

PHP 1. Hafta 2.Sunum

Web Uygulama Pentest Eğitimi

PHP 1. Hafta 1. Sunum

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

08220 Internet Programcılığı II

Şişli Mesleki ve Teknik Anadolu Lisesi Web Programcılığı Dalı 2014 WEB PROGRAMCILIĞI DALI

DIGITAL MARKET GRUBU PROJE PLANI

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Gönderilen uygulama incelendiğinde, belirtilen gerekliliklerin bir kısmının karşılandığı görülmüştür.

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

Ubuntu üzerine phpbb forum yazılımının 3.2 sürümünün kurulumu. Ocak, 2017

Java Programlamaya Giriş

PAPERWORK TEKNİK MİMARİ

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

Web Uygulama Güvenliği Kontrol Listesi 2010

PHP ile İnternet Programlama

dcc.com Nedir? Neler yapabilir? Nasıl Kullanılır?

Basit bir web uygulaması

1.PROGRAMLAMAYA GİRİŞ

WAMP SERVER KURULUMU

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

YZM 3215 İleri Web Programlama

İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ SÖZLEŞMELİ BİLİŞİM PERSONELİ SINAVINA BAŞVURACAKLAR İÇİN DUYURU

Web Application Penetration Test Report

T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA. Enes Al 1027.

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

Swing ve JDBC ile Database Erişimi

Web 2.0 Örnek Eğitim Notu

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Web Programlama Kursu

Veri Tabanı Yönetim Sistemleri Bölüm - 02

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

JBoss Seam Next Generation Integration Framework

WEB UYGULAMA GÜVENLİĞİ HAKKINDA. Mesut Güngör İzmir Yüksek Teknoloji Enstitüsü Bilgi İşlem Daire Başkanlığı

VERİ TABANI PROGRAMCILIĞI DALI

Üst Düzey Programlama

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

PHP Codeıgnıter. Gökhan Kandemir

Django Web Çerçevesi. Mete Alpaslan KATIRCIOĞLU, Emre YÜCE

1 / 5. Mehmet Alper Şen. Kıdemli Yazılım Uzmanı. İletişim Bilgileri

Yazılım Mühendİslİğİ ve Günümüz PHP Programcılığı

Üst Düzey Programlama

Windows 7 - IIS 7.5 üzerine PHP ve MySQL kurulumu

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Java EE 5 Teknolojileri Jboss Seam

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

Web Uygulama Anaçatıları. Tahir Emre KALAYCI. May 5, 2009

XAML Dili Microsoft Blend. Tasarım ve Kodlamanın. Birbirinden Ayrılması

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

Moodle Öğrenme Yönetim Sisteminin Üniversite Sistemlerine Entegrasyon Deneyimleri

WEB TASARIMINDA TEMEL KAVRAMLAR

LINQ (Temel Kavramlar)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

Açık Kod VPN Çözümleri: OpenVPN. Huzeyfe ÖNAL

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

1 / 5. Tuğba Üstündağ. İletişim Bilgileri

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

.com. Özcan Acar 2009 Kurumsal Java.com

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

[ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ]

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0

IceWarp kurulumu. IceWarp Server kurmanız için yapmamız gereken adımlar şunlardır:

Veritabanı Uygulamaları Tasarımı

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

BİL-142 Bilgisayar Programlama II

08220 Internet Programcılığı II

Transkript:

PHP CodeIgniter MVC Framework Akademik Bilişim 2011, İnönü Üniversitesi-Malatya İrfan KILIÇ Bilgisayar Mühendisi Kafkas Üniversitesi

2 Başlıklar PHP, PHP5 MVC, Framework Nedir? MVC ve Framework ün Avantaj, Dezavantajları PHP MVC Frameworkler, Neden CodeIgniter CodeIgniter Özellikleri, Kurulum CodeIgniter İşleyiş ve Dosya Yapısı CodeIgniter Yapılandırma CodeIgniter Örnekleri

3 PHP,PHP5 Neden PHP 1. Kolay öğrenilme 2. Performans 3. Fiyat 4. Opsiyonellik Nesne Tabanlı PHP (PHP Class) PHP 5 (Tam Nesne Modeli) Tasarım Desenleri (Design Patterns) MVC Tasarım Deseni

4 MVC Nedir? Adını Model View Controller'in baş harflerinden alan tasarım desenidir. Sunduğu katmanlı mimari sayesinde, uygulamanın kullanıcı arayüzü ve mantık kısmını birbirinden ayırır. Model : İş mantığı (Business Logic) bölümüdür. Tek katmandan oluşabileceği gibi, birden fazla katmanda da oluşabilir. Controller'den gelen değerleri işler ve geriye döndürür. Model katmanında herhangi bir output işlemi yapılmaz. View : Uygulamanın kullanıcıya gösterilen arayüzünün bulunduğu katmandır. Html, Css, Javascript vb. bu katmanda bulunur. Controller : Uygulamanın karar mekanizmasıdır. Model ile View arasında köprü görevi görür.

5 Framework Nedir? Framework, yazılımın iskeletini oluşturan, fonksiyon ve sınıflardan oluşan geniş çaplı bir kütüphaneye sahip uygulama çatısıdır. Framework proje sürecini hızlandırır, düzenli ve temiz kod yazımını kolaylaştırır ve yazılıma belli bir standart kazandırır. Piyasada bulunan çoğu framework kendi içinde MVC tasarım desenini barındırır. Ancak bu MVC ile FRAMEWORK'ün ayrılmaz 2 terim olduğu anlamına gelmiyor. Framework kullanmadan da MVC kullanılabilir. Kolay öğrenilebilmesi, Türkçe kaynağının bol olması, iyi bir performansa sahip olması vb. sebeplerle CodeIgniter, Türkiye'de en fazla kullanılan framework'lerden biri konumunda bulunuyor.

6 MVC Avantajları Temiz ve düzenli kod yazımını kolaylaştırır. Kodların daha kolay optimize edilmesini, genişletilmesini ve yeniden kullanılmasını sağlar. Takım çalışmasını kolaylaştırır. Tasarımsal değişiklikler, iş mantığı kısmından bağımsız yapılır. Hata ayıklamayı ve kodu test etmeyi kolaylaştırır.

7 Framework Avantajları Çoğu framework'ün içinde MVC'yi barındırması sayesinde, MVC'nin sunduğu tüm avantajlardan yararlanılması Bir çok yazılımcı tarafından test edilerek güvenlik ve performans optimizasyonlarının yapılmış olması Proje süreçlerini kolaylaştırması ve hızlandırması Düzenli ve Temiz kod yazımını kolaylaştırması Ekip halinde proje geliştirirken karışıklığı önlemesi ve görev paylaşımını kolaylaştırması Barındırdıkları database adaptörleri sayesinde farklı Veritabanı türlerine kolay bir şekilde Entegre Edilebilmesi İş görüşmelerinde avantaj sağlaması (Php Developer iş ilanlarını incelediğinizde "... Framework'üne hakim", "En az 1 framework tecrübesi olan" vb. şartları sıkça görür olduk.)

8 PHP MVC Frameworklerin Karşılaştırması

9 Neden CodeIgniter? Codeigniter Seo (Search Engine Optimization) destekli URL üretmesi ve arama moturu dostu olması sayfanızın hitini arttıracaktır, SQL injection, XSS ve diğer güvenlik açıklarından sizi koruyacaktır ve daha güvenli siteler yapmanıza ulanak sağlayacaktır, Size çok geniş bir kütüphane sunmaktadır. Bu kütüphanelere sonraki yazılarımda değineceğim, Yazmış olduğunuz uygulamaların değişik PHP versiyon ve konfigürasyonlarına sahip sunucular üzerinde çalışma uyumluluğu olacaktır, Aynı şeyleri tekrar tekrar yazmak zorunda kalmadığınızdan dolayı az yer kaplayan kodlar yazmak ve bu sebep ile vakitten kazanç sağlayacaktır.

10 CodeIgniter Özellikleri Model View Controller (MVC) yapısını barındırması Bir çok yazılımcı tarafından test edilerek güvenlik ve performans optimizasyonlarının yapılmış olması Projelerin daha kısa zamanda hazırlanabilmesi Düzenli ve Temiz kod yazımını kolaylaştırması Ekip halinde proje geliştirirken karışıklığı önlemesi ve görev paylaşımını kolaştırması Farklı Veritabanlarına Kolay bir şekilde Entegre Edilebilmesi Nesne tabanlı programlamayı kullanmış kişilerin kolayca öğrenebilmesi Düzenli ve basit kullanım kılavuzunun olması Piyasada bulunan çoğu framework'e göre hızlı olması CodeIgniter kullanan ajanslarda ve firmalarda iş görüşmelerinde avantaj sağlaması Popüler php framework yapılarından biri olması

11 Yükleme, Kurulum http://codeigniter.com/download.php adresinden en son CI sürümünü indiriyoruz. Apache, PHP, MySQL üçlüsünü kuruyoruz. (WAMP, LAMP, XAMP dan biri) İndirilen dosyayı açıp Apache nin htdocs veya wamp www klasörüsüne kopyalıyoruz.

12 CodeIgniter İşleyişi

13 CodeIgniter Dosya Yapısı system : CodeIgniter kütüphanesi ve uygulamayı geliştireceğimiz yapı bu klasörde bulunur. User_guide : CodeIgniter in Kullanım Kılavuzu klasörüdür. index.php : Uygulamanın ve framework un dizinlerini tanımladığımız, CodeIgniter in çalışmasını sağlayan dosyadır. licence.txt : EllisLab tarafından oluşturulan Kullanım Sözleşmesi dosyasıdır.

14 CodeIgniter Dosya Yapısı 2

15 CodeIgniter Dosya Yapısı 3 Config : Uygulamanın çalışması için gereken konfigürasyonları yaptığımız klasördür. Controllers : MVC'nin "controller" katmanının bulunduğu kısımdır. Errors : Uygulamada bir hata oluştuğunda burada bulunan hata sayfaları kullanıcıya gösterilir.

16 CodeIgniter Dosya Yapısı 4 Helpers : Nesne tabanlı olmayan fonksiyonel kodlarımızı oluşturabileceğimiz bölüm. Hooks : framework'ün çekirdek kodlarına müdahale edebildiğimiz alan. Language : Çok dilli uygulamalar geliştirirken, her dil için gerekli dosyaları bu klasör altında tanımlayarak kullanabiliyoruz.

17 CodeIgniter Dosya Yapısı 5 Helpers : Nesne tabanlı olmayan fonksiyonel kodlarımızı oluşturabileceğimiz bölüm. Hooks : framework'ün çekirdek kodlarına müdahale edebildiğimiz alan. Language : Çok dilli uygulamalar geliştirirken, her dil için gerekli dosyaları bu klasör altında tanımlayarak kullanabiliyoruz.

18 CodeIgniter Yapılandırma 1 index.php (CI / klasörü) error_reporting(e_all & ~E_DEPRECATED); $system_folder = "system"; $application_folder = "application"; autoload.php (system/application/config) $autoload['libraries'] = array('database', 'session', 'xmlrpc'); $autoload['helper'] = array('url','form'); $autoload['plugin'] = array('captcha', 'js_calendar'); $autoload['config'] = array('config1', 'config2'); $autoload['language'] = array('lang1', 'lang2'); $autoload['model'] = array('model1', 'model2');

19 CodeIgniter Yapılandırma 2 config.php (system/application/config) $config['base_url'] = "http://www.orneksite.com"; $config['index_page'] = index.php"; $config['uri_protocol'] = "AUTO"; $config['url_suffix'] = ""; $config['language'] = "turkish"; $config['charset'] = "UTF-8"; $config['enable_hooks'] = FALSE; $config['subclass_prefix'] = 'MY_'; $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; $config['enable_query_strings'] = FALSE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm'; $config['directory_trigger'] = 'd'; $config['log_threshold'] = 0; $config['log_path'] = ''; $config['log_date_format'] = 'Y-m-d H:i:s';

20 CodeIgniter Yapılandırma 3 config.php (system/application/config) devam $config['cache_path'] = ''; $config['encryption_key'] = ""; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_encrypt_cookie'] = FALSE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300; $config['cookie_prefix'] = ""; $config['cookie_domain'] = ""; $config['cookie_path'] = "/"; $config['global_xss_filtering'] = TRUE; $config['compress_output'] = FALSE; $config['time_reference'] = 'local'; $config['rewrite_short_tags'] = FALSE;

21 CodeIgniter Yapılandırma 4 database.php (system/application/config) $active_group = "default"; $active_record = TRUE; $db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = ornekveritabani"; $db['default']['dbdriver'] = "mysql"; $db['default']['dbprefix'] = ""; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ""; $db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "utf8_general_ci";

22 CI Class Reference, Helpers Reference Benchmarking Class Calendar Class Cart Class Config Class Database Class Email Class Encryption Class File Uploading Class Form Validation Class FTP Class HTML Table Class Image Manipulation Class Input and Security Class Class Reference Loader Class Language Class Output Class Pagination Class Session Class Trackback Class Template Parser Class Typography Class Unit Testing Class URI Class User Agent Class XML-RPC Class Zip Encoding Class

23 Helpers Reference Array Helper Compatibility Helper Cookie Helper Date Helper Directory Helper Download Helper Email Helper File Helper Form Helper HTML Helper Inflector Helper Language Helper Number Helper Path Helper Security Helper Smiley Helper String Helper Text Helper Typography Helper URL Helper XML Helper

24 CodeIgniter Örnekleri 1

25 Örnekler 2

26 Örnekler 3

27 Sorular?

28 Kaynaklar http://www.codeigniter.com http://www.codeigniter.gen.tr http://www.ellislab.com http://www.webteders.com http://www.kodfeed.com/code-igniter-nedir/