CakePHP

Release 3.9

Cake Software Foundation

CakePHP at a Glance

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Additional Reading

Where to Get Help

CakePHP Conventions

CakePHP Folder Structure

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Where to Get Help

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

CakePHP Conventions

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

CakePHP Folder Structure

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Hızlı Başlangıç Rehberi

CakePHP’yi tecrübe etmenin ve öğrenmenin en iyi yolu, oturup bişiler yapmaktır. Başlangıç için, basit bir yerimi uygulaması yapacağız.

Yerimi Eğitimi

Bu eğitim size basit bir yerimi uygulaması yapmanızı sağlayacak. Başlangıçta, CakePHP ‘yi kuracak, veritabanımızı oluşturacak, ve CakePHP araçlarını kullanarak uygulamamızı hızlıca yapabileceğiz.

İhtiyacınız olanlar:

Bir veritabanı serveri. Bu eğitimde biz MySQL serveri(local) kullanacağız. Genel SQL komutlarını veya SQL yapısını bilmeniz gerekiyor. Bundan gerisini CakePHP sizin için halledecek. MySQL kullandığımız için PHP eklentilerinden pdo_mysql etkin olduğuna emin olun.

Basit PHP bilgisi

Başlamadan önce PHP versiyonunun güncel olduğuna emin olunuz.

php -v

En azından PHP 5.6 (CLI) veya daha yüksek bir versiyonun yüklü olması gerekmektedir. Webserver PHP versiyonunun en azından 5.6 veya yükseği, ve aynı versiyonda komut arayüzünün de olması gerekmektedir. Eğer tüm uygulamayı görmek istiyorsanız cakephp/bookmarker [https://github.com/cakephp/bookmarker-tutorial]. kontrol edebilirsiniz. Başlayalım !

CakePHP Başlarken

En kolay CakePHP kurulumunu Composer ile yapabilirsiniz. Composer, basit bir CakePHP kurulumunu terminal veya komut arayüzünden yapılmasına imkan sağlar. Öncelikle Composer’i indirip kurmanız gerekmektedir. Eğer cURL yüklü ise, bu yolu da aşşağıda ki yöntem ile çok basit yapabilirsiniz:

curl -s https://getcomposer.org/installer | php

Veya, composer.phar ‘ı Composer website [https://getcomposer.org/download/]. adresinden indirebilirsiniz.

CakePHP iskeleti basitçe oluşturup kurmak için terminalizine bookmarker komut satırını çalıştırınız:

php composer.phar create-project --prefer-dist cakephp/app:^3.8 bookmarker

Eğer Composer Windows Installer [https://getcomposer.org/Composer-Setup.exe] ‘i indirip kurduysanız, o zaman kurulum klasöründe belirtilen komudu yazarak devam edebilirsiniz. (Örnek kurulum klasörü C:\wamp\www\dev\cakephp3):

composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 bookmarker

Composer’i kullanmanın avantajı bir takım işlemleri sizin için otomatik yapıyor olmasıdır. Mesela dosya yetki izinleri ve config/app.php dosyasını sizin için oluşturur.

Başka yöntemlerle de CakePHP yi kurmak mümkündür. Eğer composer kurmak veya kullanmak istemiyorsanız Kurulum a göz atabilirsiniz.

Nasıl olursa olsun, CakePHP ‘yi kurduktan ve ayarları yaptıktan sonra klasör yapınız şu şekilde olmalıdır:

/bookmarker
    /bin
    /config
    /logs
    /plugins
    /src
    /tests
    /tmp
    /vendor
    /webroot
    .editorconfig
    .gitignore
    .htaccess
    .travis.yml
    composer.json
    index.php
    phpunit.xml.dist
    README.md

Şuanda belki CakePHP nin yapısının nasıl işlediğini öğrenmeniz güzel olabilir. Bunun için CakePHP Folder Structure ‘i inceleyebilirsiniz.

Yüklememizi inceleyelim

Biz basitçe yüklememizin doğrulunu kontrol edebiliriz. Basitçe anasayfaya girmeyi deneyebilirsiniz. Bunu yapmadan önce, geliştirici serveri çalıştırmanız gerekmektedir:

bin/cake server

Not

Windows için, komut bin\cake server şeklinde olmalı. (Ters slashe dikkat ediniz).

Php nin başlangıç webserver portu 8765 dir. http://localhost:8765 browser da çalıştırarak hoşgeldin sayfasını görebilirsiniz. Veritabanı erişimi hariç bütün onay kutuları işaretli olmalıdır. Tümü işaretli değilse, php eklentilerini veya klasör izinlerini kontrol edin.

Veritabanını oluşturalım

Yerimi uygulamamızın veritabanını oluşturalım. Eğer halan bir boş veritabanı oluşturmadıysanız, bir tane oluşturun. İstediğiniz isimle olabilir örnek cake_bookmarks. Devamında ki SQL komutunu yürüterek gerekli tabloları oluşturabilirsiniz:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME
);

CREATE TABLE bookmarks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(50),
    description TEXT,
    url TEXT,
    created DATETIME,
    modified DATETIME,
    FOREIGN KEY user_key (user_id) REFERENCES users(id)
);

CREATE TABLE tags (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    created DATETIME,
    modified DATETIME,
    UNIQUE KEY (title)
);

CREATE TABLE bookmarks_tags (
    bookmark_id INT NOT NULL,
    tag_id INT NOT NULL,
    PRIMARY KEY (bookmark_id, tag_id),
    FOREIGN KEY tag_key(tag_id) REFERENCES tags(id),
    FOREIGN KEY bookmark_key(bookmark_id) REFERENCES bookmarks(id)
);

Composite Primary Key kullanılan bookmarks_tags tablosuna belki dikkat etmişsinizdir. CakePHP composite primary keyi neredeyse heryerde destekler. Çok yönlü uygulama yapımını kolaylaştırır.

Tablo ve sütun isimlerini keyfe bağlı kullanmadık. CakePHP nin naming conventions de anlatıldığı gibi CakePHP yi daha rahat yapmak için framework’ü yeniden yapılandırmalardan kaçındırdık. Hatta CakePHP eski veritabanı şablonlarını yerleştirmek için bile yeterince rahat kullanım sağlar. Fakat düzene bağlı kalmak sizin zamanınızı kurtarır.

Veritabanı Yapılandırması

Bir sonra ki adım olarak, CakePHP ye veritabanımızın nerede olduğunu ve nasıl bağlanacağımızı belirtelim. Bu sizin ilk ve son ihtiyaç duyacağınız yapılandırmalardan birisi.

Yapılandırma gerçekten çok basit: sadece config/app.php de ki Datasources.default array ini değiştirerek yapılandırmanızı yapabilirsiniz. Örnek olarak tamamlanmış yapılandırmaya bakabilirsiniz:

return [
    // More configuration above.
    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'username' => 'cakephp',
            'password' => 'AngelF00dC4k3~',
            'database' => 'cake_bookmarks',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
        ],
    ],
    // Daha fazlası altta
];

Yapılandırmayı yaptıktan ve dosyayı kayıt ettikten sonra, anasayfada ki ‘CakePHP is able to connect to the database’ seçeneğinin işaretli olduğunu görmeniz gerekmektedir. Yani CakePHP veritabanına erişim sağlamıştır diyor.

Not

Bir CakePHP nin varsayılan yapılandırma dosyası config/app.default.php adresinde bulunabilir.

İskele Yapımızı Oluşturalım

Bizim veritabanımız CakePHP nin düzenini kullandığı için, bake console yapısını kullanarak hızlıca basit uygulamayı oluşturabiliriz. Komut satırında şu komutları yürütün:

// Windows da bin\cake şeklinde yapınız
bin/cake bake all users
bin/cake bake all bookmarks
bin/cake bake all tags

Bu controllerimizi, modelleri, viewları, bunlara uyan test tarafını ve fikstürleri bizim users, bookmarks, ve tags kaynakları için oluşturur. Eğer, serveri durdurduysanız yeniden başlatınız ve http://localhost:8765/bookmarks adresine gidiniz.

Basit fakat fonksiyonel bir uygulama görüyor olmanız gerekmektedir. Birkaç veri ekledikten sonra veritabanı tablolarını görüyor olmanız gerekmektedir.

Not

Eğer Sayfa Bulunamadı (404) hatası görüyorsanız, Apache de ki mod_rewrite modulünün açık olduğunu kontrol ediniz.

Parola Karıştırma Ekleme (Hashing)

Kullanıcılarınızı oluşturduktan sonra (http://localhost:8765/users sayfasında ki), siz muhtemelen şifrelerin düz metin olarak saklandığını görüyorsunuzdur. Bu gözle görünür derecede oldukça güvenlik açısından kötüdür. Yani bunu düzeltmemiz gerekiyor.

Aynı zamanda CakePHP deki model yapımız hakkında konuşma zamanımız geldi. CakePHP de ayrı metotları ayırarak nesne üstünde birleştiriyoruz ve bir neste içerisinde farklı sınıflar oluyor. Yöntemleri Table sınıflarını içeriye atarak topluyoruz. Bu özellikleri de tek başına Entity sınıfına aktardık.

Örnek olarak, şifre karıştırma işlemi tamamen başlı başına bir bireysel kayıttır, yani entity nesnesin deki işlevi uygulayacağız. Çünkü biz şifrelerimizi her kayıt olduğu an karıştırmak istiyoruz. Biz mutator/setter yöntemini uygulayacağız.Her hangi bir zaman entities deki bir özellik çalıştığı zaman CakePHP setter metotunu çağıracaktır. Şifrelerimiz için setter’i ekleyelim. src/Model/Entity/User.php de şunları izleyin:

namespace App\Model\Entity;

use Cake\Auth\DefaultPasswordHasher; //Bu satırı ekleyin
use Cake\ORM\Entity;

class User extends Entity
{

    // Code from bake.

    protected function _setPassword($value)
    {
        $hasher = new DefaultPasswordHasher();
        return $hasher->hash($value);
    }
}

Şimdi daha önceden kayıt ettiğiniz bir kullanıcıyı güncelleyin. Eğer şifreyi değiştirirseniz, orjinal değerden farklı olarak karıştırılmış şifrenin kullanıldığını listede veya view sayfasında göreceksiniz. CakePHP şifre karıştırma yöntemlerinden bcrypt [http://codahale.com/how-to-safely-store-a-password/] ı varsayılan olarak kullanır. Siz aynı zamanda sha1 veya md5’i de kullanabilir, zaten var olan bir veritabanını uyarlayabilirsiniz.

Yerimlerini Özel Taglar ile getirelim

Şuanda güçlü şifreleri güvenli olarak koruyoruz. Biz daha enterasan özellikleri uygulamamızda kurabiliriz. Yerimlerileri yığınca bir şekilde olduktan sonra, etiketler ile onları arayabilmek tabiki yardımcı olacaktır. Şimdi ise bir rota yöntemini uygulayalım. Controller faliyeti ve arayıcı yöntemi ile etiket yardımıyla yerimi araması yapalım.

İdeal olarak http://localhost:8765/bookmarks/tagged/funny/cat/gifs adresimize benzeyebilir. Bu bize ‘funny, ‘cat’ veya ‘gifs’ geçen taglarla tüm yerimilerini bulmamızı sağlar. Bu işlevi uygulamadan önce yeni bir rota ekleyelim. Sizin config/routes.php niz şu şekilde gözükmeli:

<?php
use Cake\Routing\Router;

Router::defaultRouteClass('Route');
// Yeni rota tag işlevi için ekliyoruz.
// Sonda ki `*` işareti CakePHP nin aktarılabilir parametrelerinin
// olduğunu belirtir.
Router::scope(
    '/bookmarks',
    ['controller' => 'Bookmarks'],
    function ($routes) {
        $routes->connect('/tagged/*', ['action' => 'tags']);
    }
);

Router::scope('/', function ($routes) {
    // Varsayılan olarak home ve /pages/* bağlantı rotası.
    $routes->connect('/', [
        'controller' => 'Pages',
        'action' => 'display', 'home'
    ]);
    $routes->connect('/pages/*', [
        'controller' => 'Pages',
        'action' => 'display'
    ]);

    // Connect the conventions based default routes.
    $routes->fallbacks('InflectedRoute');
});

Yukarıda ki ‘route’ tanımlaması /bookmarks/tagged/ uzantısıyla BookmarksController::tags() ını bağlar. Rota tanımlamayla, url görünümünü izole edebilirsiniz. Eğer biz http://localhost:8765/bookmarks/tagged i ziyaret edersek yardımcı bir hata sayfasını göreceğiz. CakePHP nin controller fonksiyonunun olmadığını birdiren yardımcı hata sayfası gözükür. Şimdi eksik olan metodu da sistemimize entegre edelim. src/Controller/BookmarksController.php ye şunları ekleyelim:

public function tags()
{
    // 'pass' CakePHP tarafından tüm sorguda ki
    // url yolunu kapsar.
    $tags = $this->request->param('pass');

    // BookmarksTable 'ı kullanarak taglı yerimlerini bulabilirsiniz.
    $bookmarks = $this->Bookmarks->find('tagged', [
        'tags' => $tags
    ]);

    // Değerleri View Şablon İçeriğine aktarır
    $this->set([
        'bookmarks' => $bookmarks,
        'tags' => $tags
    ]);
}

Sorguda ki diğer değerlere erişebilmek için, Request bölümüne bakınız.

Bulucu Metot Oluşturma

CakePHP de Controller Fonksiyonlarını kısa tutmayı sever, uygulamamızın çoğu mantık işlevlerini modelde tutarız. Eğer /bookmarks/tagged url ‘ı ziyaret ederseniz bu sefer de findTagged() metodunun daha uygulanmadığı hatasını görürüsünüz. Şimdi de bunu uygulayalım. src/Model/Table/BookmarksTable.php de şunları ekleyiniz:

// $query konusu sorgu oluşturucu örneğidir.
// $options arrayi controller fonksiyonun da ki find('tagged') ile gönderdiğimiz
// 'tags' seçeneğini içerir.
public function findTagged(Query $query, array $options)
{
    $bookmarks = $this->find()
        ->select(['id', 'url', 'title', 'description']);

    if (empty($options['tags'])) {
        $bookmarks
            ->leftJoinWith('Tags')
            ->where(['Tags.title IS' => null]);
    } else {
        $bookmarks
            ->innerJoinWith('Tags')
            ->where(['Tags.title IN ' => $options['tags']]);
    }

    return $bookmarks->group(['Bookmarks.id']);
}

Biz özel bulucu metodu geliştirdik. Bu CakePHP nin çok güçlü olduğu yönlerinden paketle, yeniden kullan sorgularından dır. Bulucu metodu her zaman bir Query Builder nesne ve seçenekli array parametresi sağlar. Bulucular sorguyu değiştirebilir ve gerekli koşul yada kriter ekleyebilir. Bittiği zaman, bulucu metodu değiştirilmiş sorgu nesnesi döndürmek zorundadır. Bizim bulucumuzda distinct() ve matching() metotlarını kullanarak farklı ‘matching’ tagına sahip yerimilerini bulmamızı sağlar. matching() metodu anonymous function [http://php.net/manual/en/functions.anonymous.php] ‘u kabul ederek onu bir argument şeklinde sorgu oluşturucu olarak karşılar. Geri Çağırmanın içerisinde biz sorgu oluşturucuyu koşulları tanımlamak için yani yerimilerini filterlayıp özel taglara sahip olması için kullanırız.

View’ı Oluşturma

Şimdi eğer /bookmarks/tagged url sayfasını ziyaret ederseniz CakePHP size bir başka hata sayfası daha gösterecektir. Burada ise sizin View dosyasının var olmadığını belirtir. Bir sonra ki adım olarak view dosyasını bizim tags() fonksiyonu için oluşturalım. src/Template/Bookmarks/tags.ctp de şu içerikleri izleyiniz:

<h1>
    Bookmarks tagged with
    <?= $this->Text->toList(h($tags)) ?>
</h1>

<section>
<?php foreach ($bookmarks as $bookmark): ?>
    <article>
        <!-- HtmlHelper kullanarak link oluşturun -->
        <h4><?= $this->Html->link($bookmark->title, $bookmark->url) ?></h4>
        <small><?= h($bookmark->url) ?></small>

        <!-- TextHelper kullanarak text'in formatını ayarlayın-->
        <?= $this->Text->autoParagraph(h($bookmark->description)) ?>
    </article>
<?php endforeach; ?>
</section>

Yukarıda ki kodda Html kullanıyoruz ve Text yardımcıyı yönlendirerek çıktı sayfamızı oluşturuyoruz. Biz aynı zaman da h kısayol fonksiyonunu kullanarak HTML encode çıktısını alıyoruz.Kullanıcı verisin de html injeksiyonlarından önlemek için her zaman h() kullanmayı hatırlayın.

Yeni oluşturduğumuz tags.ctp dosyası CakePHP’nin view şablon dosyası standartlarına bağlıdır. Bu standartda şablonların düşük karakterli ve alt tireli controller fonksiyon isimleri yer alır.

Belki bizim view da ki $tags ve $bookmarks değişkenleri kullanabildiğimize dikkat etmişsinizdir. Biz ne zaman set() metodunu kontrollerda kullansak, özel değişkenleri view’a aktarmış oluruz. View tüm aktarılan değişkenlere local değişken gibi erişebilir yapar.

Artık /bookmarks/tagged/funny e erişebiliyor olmanız ve tüm ‘funny’ etiketli yerimilerini görüyorsunuzdur.

Öyleyse, biz basit yerimileri, etiketleri, kullanıcıları olan bir uygulama oluşturduk. Her nasılsa, herkes diğerlerin etiketlerini görebilir. Bir sonra ki bölümde, biz yetki düzeyini uygulayacağız ve yerimilerinin görünümünü sadece geçerli kullanıcıya göre kısıtlayacağız.

Şimdi Bookmarker Tutorial Part 2 ile uygulamanızı geliştirmeye devam edebilir veya dive into the documentation CakePHP nin neler yapabileceğine göz atabilirsiniz.

Bookmarker Tutorial Part 2

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.0 Migration Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Tutorials & Examples

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Yerimi Eğitimi

Bookmarker Tutorial Part 2

Blog Tutorial

Blog Tutorial - Part 2

Blog Tutorial - Part 3

Blog Tutorial - Authentication and Authorization

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Yerimi Eğitimi

Bu eğitim size basit bir yerimi uygulaması yapmanızı sağlayacak. Başlangıçta, CakePHP ‘yi kuracak, veritabanımızı oluşturacak, ve CakePHP araçlarını kullanarak uygulamamızı hızlıca yapabileceğiz.

İhtiyacınız olanlar:

Bir veritabanı serveri. Bu eğitimde biz MySQL serveri(local) kullanacağız. Genel SQL komutlarını veya SQL yapısını bilmeniz gerekiyor. Bundan gerisini CakePHP sizin için halledecek. MySQL kullandığımız için PHP eklentilerinden pdo_mysql etkin olduğuna emin olun.

Basit PHP bilgisi

Başlamadan önce PHP versiyonunun güncel olduğuna emin olunuz.

php -v

En azından PHP 5.6 (CLI) veya daha yüksek bir versiyonun yüklü olması gerekmektedir. Webserver PHP versiyonunun en azından 5.6 veya yükseği, ve aynı versiyonda komut arayüzünün de olması gerekmektedir. Eğer tüm uygulamayı görmek istiyorsanız cakephp/bookmarker [https://github.com/cakephp/bookmarker-tutorial]. kontrol edebilirsiniz. Başlayalım !

CakePHP Başlarken

En kolay CakePHP kurulumunu Composer ile yapabilirsiniz. Composer, basit bir CakePHP kurulumunu terminal veya komut arayüzünden yapılmasına imkan sağlar. Öncelikle Composer’i indirip kurmanız gerekmektedir. Eğer cURL yüklü ise, bu yolu da aşşağıda ki yöntem ile çok basit yapabilirsiniz:

curl -s https://getcomposer.org/installer | php

Veya, composer.phar ‘ı Composer website [https://getcomposer.org/download/]. adresinden indirebilirsiniz.

CakePHP iskeleti basitçe oluşturup kurmak için terminalizine bookmarker komut satırını çalıştırınız:

php composer.phar create-project --prefer-dist cakephp/app:^3.8 bookmarker

Eğer Composer Windows Installer [https://getcomposer.org/Composer-Setup.exe] ‘i indirip kurduysanız, o zaman kurulum klasöründe belirtilen komudu yazarak devam edebilirsiniz. (Örnek kurulum klasörü C:\wamp\www\dev\cakephp3):

composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 bookmarker

Composer’i kullanmanın avantajı bir takım işlemleri sizin için otomatik yapıyor olmasıdır. Mesela dosya yetki izinleri ve config/app.php dosyasını sizin için oluşturur.

Başka yöntemlerle de CakePHP yi kurmak mümkündür. Eğer composer kurmak veya kullanmak istemiyorsanız Kurulum a göz atabilirsiniz.

Nasıl olursa olsun, CakePHP ‘yi kurduktan ve ayarları yaptıktan sonra klasör yapınız şu şekilde olmalıdır:

/bookmarker
    /bin
    /config
    /logs
    /plugins
    /src
    /tests
    /tmp
    /vendor
    /webroot
    .editorconfig
    .gitignore
    .htaccess
    .travis.yml
    composer.json
    index.php
    phpunit.xml.dist
    README.md

Şuanda belki CakePHP nin yapısının nasıl işlediğini öğrenmeniz güzel olabilir. Bunun için CakePHP Folder Structure ‘i inceleyebilirsiniz.

Yüklememizi inceleyelim

Biz basitçe yüklememizin doğrulunu kontrol edebiliriz. Basitçe anasayfaya girmeyi deneyebilirsiniz. Bunu yapmadan önce, geliştirici serveri çalıştırmanız gerekmektedir:

bin/cake server

Not

Windows için, komut bin\cake server şeklinde olmalı. (Ters slashe dikkat ediniz).

Php nin başlangıç webserver portu 8765 dir. http://localhost:8765 browser da çalıştırarak hoşgeldin sayfasını görebilirsiniz. Veritabanı erişimi hariç bütün onay kutuları işaretli olmalıdır. Tümü işaretli değilse, php eklentilerini veya klasör izinlerini kontrol edin.

Veritabanını oluşturalım

Yerimi uygulamamızın veritabanını oluşturalım. Eğer halan bir boş veritabanı oluşturmadıysanız, bir tane oluşturun. İstediğiniz isimle olabilir örnek cake_bookmarks. Devamında ki SQL komutunu yürüterek gerekli tabloları oluşturabilirsiniz:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME
);

CREATE TABLE bookmarks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(50),
    description TEXT,
    url TEXT,
    created DATETIME,
    modified DATETIME,
    FOREIGN KEY user_key (user_id) REFERENCES users(id)
);

CREATE TABLE tags (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    created DATETIME,
    modified DATETIME,
    UNIQUE KEY (title)
);

CREATE TABLE bookmarks_tags (
    bookmark_id INT NOT NULL,
    tag_id INT NOT NULL,
    PRIMARY KEY (bookmark_id, tag_id),
    FOREIGN KEY tag_key(tag_id) REFERENCES tags(id),
    FOREIGN KEY bookmark_key(bookmark_id) REFERENCES bookmarks(id)
);

Composite Primary Key kullanılan bookmarks_tags tablosuna belki dikkat etmişsinizdir. CakePHP composite primary keyi neredeyse heryerde destekler. Çok yönlü uygulama yapımını kolaylaştırır.

Tablo ve sütun isimlerini keyfe bağlı kullanmadık. CakePHP nin naming conventions de anlatıldığı gibi CakePHP yi daha rahat yapmak için framework’ü yeniden yapılandırmalardan kaçındırdık. Hatta CakePHP eski veritabanı şablonlarını yerleştirmek için bile yeterince rahat kullanım sağlar. Fakat düzene bağlı kalmak sizin zamanınızı kurtarır.

Veritabanı Yapılandırması

Bir sonra ki adım olarak, CakePHP ye veritabanımızın nerede olduğunu ve nasıl bağlanacağımızı belirtelim. Bu sizin ilk ve son ihtiyaç duyacağınız yapılandırmalardan birisi.

Yapılandırma gerçekten çok basit: sadece config/app.php de ki Datasources.default array ini değiştirerek yapılandırmanızı yapabilirsiniz. Örnek olarak tamamlanmış yapılandırmaya bakabilirsiniz:

return [
    // More configuration above.
    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'username' => 'cakephp',
            'password' => 'AngelF00dC4k3~',
            'database' => 'cake_bookmarks',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
        ],
    ],
    // Daha fazlası altta
];

Yapılandırmayı yaptıktan ve dosyayı kayıt ettikten sonra, anasayfada ki ‘CakePHP is able to connect to the database’ seçeneğinin işaretli olduğunu görmeniz gerekmektedir. Yani CakePHP veritabanına erişim sağlamıştır diyor.

Not

Bir CakePHP nin varsayılan yapılandırma dosyası config/app.default.php adresinde bulunabilir.

İskele Yapımızı Oluşturalım

Bizim veritabanımız CakePHP nin düzenini kullandığı için, bake console yapısını kullanarak hızlıca basit uygulamayı oluşturabiliriz. Komut satırında şu komutları yürütün:

// Windows da bin\cake şeklinde yapınız
bin/cake bake all users
bin/cake bake all bookmarks
bin/cake bake all tags

Bu controllerimizi, modelleri, viewları, bunlara uyan test tarafını ve fikstürleri bizim users, bookmarks, ve tags kaynakları için oluşturur. Eğer, serveri durdurduysanız yeniden başlatınız ve http://localhost:8765/bookmarks adresine gidiniz.

Basit fakat fonksiyonel bir uygulama görüyor olmanız gerekmektedir. Birkaç veri ekledikten sonra veritabanı tablolarını görüyor olmanız gerekmektedir.

Not

Eğer Sayfa Bulunamadı (404) hatası görüyorsanız, Apache de ki mod_rewrite modulünün açık olduğunu kontrol ediniz.

Parola Karıştırma Ekleme (Hashing)

Kullanıcılarınızı oluşturduktan sonra (http://localhost:8765/users sayfasında ki), siz muhtemelen şifrelerin düz metin olarak saklandığını görüyorsunuzdur. Bu gözle görünür derecede oldukça güvenlik açısından kötüdür. Yani bunu düzeltmemiz gerekiyor.

Aynı zamanda CakePHP deki model yapımız hakkında konuşma zamanımız geldi. CakePHP de ayrı metotları ayırarak nesne üstünde birleştiriyoruz ve bir neste içerisinde farklı sınıflar oluyor. Yöntemleri Table sınıflarını içeriye atarak topluyoruz. Bu özellikleri de tek başına Entity sınıfına aktardık.

Örnek olarak, şifre karıştırma işlemi tamamen başlı başına bir bireysel kayıttır, yani entity nesnesin deki işlevi uygulayacağız. Çünkü biz şifrelerimizi her kayıt olduğu an karıştırmak istiyoruz. Biz mutator/setter yöntemini uygulayacağız.Her hangi bir zaman entities deki bir özellik çalıştığı zaman CakePHP setter metotunu çağıracaktır. Şifrelerimiz için setter’i ekleyelim. src/Model/Entity/User.php de şunları izleyin:

namespace App\Model\Entity;

use Cake\Auth\DefaultPasswordHasher; //Bu satırı ekleyin
use Cake\ORM\Entity;

class User extends Entity
{

    // Code from bake.

    protected function _setPassword($value)
    {
        $hasher = new DefaultPasswordHasher();
        return $hasher->hash($value);
    }
}

Şimdi daha önceden kayıt ettiğiniz bir kullanıcıyı güncelleyin. Eğer şifreyi değiştirirseniz, orjinal değerden farklı olarak karıştırılmış şifrenin kullanıldığını listede veya view sayfasında göreceksiniz. CakePHP şifre karıştırma yöntemlerinden bcrypt [http://codahale.com/how-to-safely-store-a-password/] ı varsayılan olarak kullanır. Siz aynı zamanda sha1 veya md5’i de kullanabilir, zaten var olan bir veritabanını uyarlayabilirsiniz.

Yerimlerini Özel Taglar ile getirelim

Şuanda güçlü şifreleri güvenli olarak koruyoruz. Biz daha enterasan özellikleri uygulamamızda kurabiliriz. Yerimlerileri yığınca bir şekilde olduktan sonra, etiketler ile onları arayabilmek tabiki yardımcı olacaktır. Şimdi ise bir rota yöntemini uygulayalım. Controller faliyeti ve arayıcı yöntemi ile etiket yardımıyla yerimi araması yapalım.

İdeal olarak http://localhost:8765/bookmarks/tagged/funny/cat/gifs adresimize benzeyebilir. Bu bize ‘funny, ‘cat’ veya ‘gifs’ geçen taglarla tüm yerimilerini bulmamızı sağlar. Bu işlevi uygulamadan önce yeni bir rota ekleyelim. Sizin config/routes.php niz şu şekilde gözükmeli:

<?php
use Cake\Routing\Router;

Router::defaultRouteClass('Route');
// Yeni rota tag işlevi için ekliyoruz.
// Sonda ki `*` işareti CakePHP nin aktarılabilir parametrelerinin
// olduğunu belirtir.
Router::scope(
    '/bookmarks',
    ['controller' => 'Bookmarks'],
    function ($routes) {
        $routes->connect('/tagged/*', ['action' => 'tags']);
    }
);

Router::scope('/', function ($routes) {
    // Varsayılan olarak home ve /pages/* bağlantı rotası.
    $routes->connect('/', [
        'controller' => 'Pages',
        'action' => 'display', 'home'
    ]);
    $routes->connect('/pages/*', [
        'controller' => 'Pages',
        'action' => 'display'
    ]);

    // Connect the conventions based default routes.
    $routes->fallbacks('InflectedRoute');
});

Yukarıda ki ‘route’ tanımlaması /bookmarks/tagged/ uzantısıyla BookmarksController::tags() ını bağlar. Rota tanımlamayla, url görünümünü izole edebilirsiniz. Eğer biz http://localhost:8765/bookmarks/tagged i ziyaret edersek yardımcı bir hata sayfasını göreceğiz. CakePHP nin controller fonksiyonunun olmadığını birdiren yardımcı hata sayfası gözükür. Şimdi eksik olan metodu da sistemimize entegre edelim. src/Controller/BookmarksController.php ye şunları ekleyelim:

public function tags()
{
    // 'pass' CakePHP tarafından tüm sorguda ki
    // url yolunu kapsar.
    $tags = $this->request->param('pass');

    // BookmarksTable 'ı kullanarak taglı yerimlerini bulabilirsiniz.
    $bookmarks = $this->Bookmarks->find('tagged', [
        'tags' => $tags
    ]);

    // Değerleri View Şablon İçeriğine aktarır
    $this->set([
        'bookmarks' => $bookmarks,
        'tags' => $tags
    ]);
}

Sorguda ki diğer değerlere erişebilmek için, Request bölümüne bakınız.

Bulucu Metot Oluşturma

CakePHP de Controller Fonksiyonlarını kısa tutmayı sever, uygulamamızın çoğu mantık işlevlerini modelde tutarız. Eğer /bookmarks/tagged url ‘ı ziyaret ederseniz bu sefer de findTagged() metodunun daha uygulanmadığı hatasını görürüsünüz. Şimdi de bunu uygulayalım. src/Model/Table/BookmarksTable.php de şunları ekleyiniz:

// $query konusu sorgu oluşturucu örneğidir.
// $options arrayi controller fonksiyonun da ki find('tagged') ile gönderdiğimiz
// 'tags' seçeneğini içerir.
public function findTagged(Query $query, array $options)
{
    $bookmarks = $this->find()
        ->select(['id', 'url', 'title', 'description']);

    if (empty($options['tags'])) {
        $bookmarks
            ->leftJoinWith('Tags')
            ->where(['Tags.title IS' => null]);
    } else {
        $bookmarks
            ->innerJoinWith('Tags')
            ->where(['Tags.title IN ' => $options['tags']]);
    }

    return $bookmarks->group(['Bookmarks.id']);
}

Biz özel bulucu metodu geliştirdik. Bu CakePHP nin çok güçlü olduğu yönlerinden paketle, yeniden kullan sorgularından dır. Bulucu metodu her zaman bir Query Builder nesne ve seçenekli array parametresi sağlar. Bulucular sorguyu değiştirebilir ve gerekli koşul yada kriter ekleyebilir. Bittiği zaman, bulucu metodu değiştirilmiş sorgu nesnesi döndürmek zorundadır. Bizim bulucumuzda distinct() ve matching() metotlarını kullanarak farklı ‘matching’ tagına sahip yerimilerini bulmamızı sağlar. matching() metodu anonymous function [http://php.net/manual/en/functions.anonymous.php] ‘u kabul ederek onu bir argument şeklinde sorgu oluşturucu olarak karşılar. Geri Çağırmanın içerisinde biz sorgu oluşturucuyu koşulları tanımlamak için yani yerimilerini filterlayıp özel taglara sahip olması için kullanırız.

View’ı Oluşturma

Şimdi eğer /bookmarks/tagged url sayfasını ziyaret ederseniz CakePHP size bir başka hata sayfası daha gösterecektir. Burada ise sizin View dosyasının var olmadığını belirtir. Bir sonra ki adım olarak view dosyasını bizim tags() fonksiyonu için oluşturalım. src/Template/Bookmarks/tags.ctp de şu içerikleri izleyiniz:

<h1>
    Bookmarks tagged with
    <?= $this->Text->toList(h($tags)) ?>
</h1>

<section>
<?php foreach ($bookmarks as $bookmark): ?>
    <article>
        <!-- HtmlHelper kullanarak link oluşturun -->
        <h4><?= $this->Html->link($bookmark->title, $bookmark->url) ?></h4>
        <small><?= h($bookmark->url) ?></small>

        <!-- TextHelper kullanarak text'in formatını ayarlayın-->
        <?= $this->Text->autoParagraph(h($bookmark->description)) ?>
    </article>
<?php endforeach; ?>
</section>

Yukarıda ki kodda Html kullanıyoruz ve Text yardımcıyı yönlendirerek çıktı sayfamızı oluşturuyoruz. Biz aynı zaman da h kısayol fonksiyonunu kullanarak HTML encode çıktısını alıyoruz.Kullanıcı verisin de html injeksiyonlarından önlemek için her zaman h() kullanmayı hatırlayın.

Yeni oluşturduğumuz tags.ctp dosyası CakePHP’nin view şablon dosyası standartlarına bağlıdır. Bu standartda şablonların düşük karakterli ve alt tireli controller fonksiyon isimleri yer alır.

Belki bizim view da ki $tags ve $bookmarks değişkenleri kullanabildiğimize dikkat etmişsinizdir. Biz ne zaman set() metodunu kontrollerda kullansak, özel değişkenleri view’a aktarmış oluruz. View tüm aktarılan değişkenlere local değişken gibi erişebilir yapar.

Artık /bookmarks/tagged/funny e erişebiliyor olmanız ve tüm ‘funny’ etiketli yerimilerini görüyorsunuzdur.

Öyleyse, biz basit yerimileri, etiketleri, kullanıcıları olan bir uygulama oluşturduk. Her nasılsa, herkes diğerlerin etiketlerini görebilir. Bir sonra ki bölümde, biz yetki düzeyini uygulayacağız ve yerimilerinin görünümünü sadece geçerli kullanıcıya göre kısıtlayacağız.

Şimdi Bookmarker Tutorial Part 2 ile uygulamanızı geliştirmeye devam edebilir veya dive into the documentation CakePHP nin neler yapabileceğine göz atabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Bookmarker Tutorial Part 2

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Blog Tutorial

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Blog Tutorial - Part 2

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Blog Tutorial - Part 3

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Blog Tutorial - Authentication and Authorization

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Contributing

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Documentation

Tickets

Code

Coding Standards

Backwards Compatibility Guide

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Documentation

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Tickets

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Code

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Coding Standards

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Backwards Compatibility Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Kurulum

CakePHP basittir ve kurulum çok kolaydır. İhtiyacınız olan en basit şeyler bir web sunucusu ve CakePHP’nin bir kopyasıdır, o kadar! Bu bölüm Apache web sunucusu üzerinde kurulumu anlatsa da (çünkü kolay kuruluyor ve ayarlanıyor) CakePHP nginx, LightHTTPD, or Microsoft IIS gibi birçok sunucu üzerinde rahatlıkla çalışır.

Gereksinimler

HTTP sunucusu. Örneğin: Apache. mod_rewrite özelliğinin açık olması tercih edilir ama zorunlu değildir.

PHP 5.6 veya daha yüksek.

mbstring eklentisi

intl eklentisi

Bir veritabanı olması zorunlu olmasa dahi, birçok uygulamanın veritabanı kullandığını düşünüyoruz. CakePHP bir çok veritabanını desteklemektedir.

MySQL (5.1.10 veya daha yüksek)

PostgreSQL

Microsoft SQL Server (2008 veya daha yüksek)

SQLite 3

Not

Tüm gömülü sürücüler PDO’ya ihtiyaç duyarlar. All built-in drivers require PDO. PDO eklentisinin kurulu olduğundan emin olmalısınız.

CakePHP’yi kurmak

CakePHP resmi olarak desteklenen kurulum aracı olarak PHP 5.3+ için bağımlılık yönetici aracı olan Composer <http://getcomposer.org> kullanmaktadır.

İlk olarak eğer yapmadıysanız, Composer’i indirip kurmalısınız. Eğer sisteminizde cURL yüklüyse, işlem, aşağıdaki komutu çağırmak kadar basittir:

curl -s https://getcomposer.org/installer | php

Veya Composer sitesinden <https://getcomposer.org/download/> composer.phar dosyasını indirebilirsiniz.

Windows sistemler için, Composer’in Windows yükelyicisini buradan [https://github.com/composer/windows-setup/releases/] indirebilirsiniz. Ayrıca Burada [https://github.com/composer/windows-setup] README dosyasında ek talimatlerı bulabilirsiniz.

Şimdi Composer’i indirip kurduğunuza göre, taze bir CakePHP uygulamasını şu komutları çalıştırarak elde edebilirsiniz:

php composer.phar create-project --prefer-dist cakephp/app:^3.8 [app_name]

Eğer composer tüm sistemde yüklü ise:

composer create-project --prefer-dist cakephp/app:^3.8 [app_name]

Composer uygulama iskeletini ve çekirdek CakePHP kütüphanesini indirdiğinde, elinizde Composer ile yüklenmiş çalışan bir CakePHP uygulaması olacaktır. composer.json ve composer.lock dosyalarının kaynak kodunuzda olduğundan daima emin olun.

Şimdi CakePHP’yi yüklediğinizi adresi tarayıcınızda açın ve kurulum için traifk ışıklarını görün. (Tarayıcıyı açtığınızda anlayacaksınız.)

Son CakePHP Değişiklikleri ile Güncel Kalmak

Eğer son CakePHP değişiklikleri ile güncel kalmak istiyorsanız, uygulamanızın composer.json aşağıdaki kodu ekleyebilirsiniz:

"require": {
    "cakephp/cakephp": "3.0.*-dev"
}

Burada <branch> güncel kalmasını sitediğiniz dalın ismidir. php composer.phar update komutunu her çalıştırdığınızda, seçilmiş olan daldaki en son değişiklikleri alacaksınız.

İzinler

CakePHP çeşitli işlemler için tmp dizinini kullanır. Bunlardan bazıları model açıklamaları, önbelleğe alınmış görünümler ve oturum bilgileridir. logs dizini ise Log işlemleri için FileLog motoru tarafından kullanılmaktadır.

Bu nedenle, CakePHP kurulumunuzdaki logs, tmp dizinleri ve altdizinlerinin web sunucusu kullanıcısı tarafından yazılabilir olduklarından emin olmalısınız. Composer’in kurulum işlemi, işleri hızlıca halletmek için tmp ve alt dizinlerini heryerden yazılabilir yapar, ancak daha iyi güvenlik ve sadece web sunucusu kullanıcısı tarafından yazılabilir olması için izinleri güncelleyebilirsiniz.

Üzerine düşünülmesi gereken bir diğer konu da, logs ve tmp dizinlerinin hem web sunucusu hem de komut satırı kullanıcıları tarafından yazılabilir olmalarıdır. Bir UNIX sisteminde, web sunucusu ve komut satırı kullanıcıları farklı ise, uygulama dizininizdde bir seferliğinie izinlerinizin düzgün kurulduğundan emin olmak için aşağıdaki komutları çalıştırabilirsiniz:

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
setfacl -R -m u:${HTTPDUSER}:rwx tmp
setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
setfacl -R -m u:${HTTPDUSER}:rwx logs
setfacl -R -d -m u:${HTTPDUSER}:rwx logs

Geliştirme Sunucusu

CakePHP’yi kurmanın en hızlı yolu geliştime kurulumudur. Bu örnekte uygulamanın http://host:port adresinden açılabilmesini sağlamak için PHP’nin gömülü sunucusunu CakePHP konsolunu kullanarak çalıştıracağız. Şu komutu ygulama dizininde çalıştırıalım:

bin/cake server

Herhangi bir parametre kullanmadığınızda uygulama şu adreste çalışacaktır http://localhost:8765/.

Eğer localhost sunucusunda veya 8765 portları üstünde çakışma oluyorsa, CakePHP konsoluna, web sunucusunu belirttiğiniz adres veya portta çalışrmasını öyleyebilirsiniz:

bin/cake server -H 192.168.13.37 -p 5673

Bu komut uygulamanızı http://192.168.13.37:5673/ adresinde çalıştıracaktır.

That’s it! Your CakePHP application is up and running without having to configure a web server.

Uyarı

Geliştirme sunucusu asla canlı sistemde kullanılmamalıdır. Bu sunucu sadece basit işler için kullanılmalıdır.

Eğer gerçek bir sunucu kullanmayı tercih ediyosanız, CakePHP kurulumunuzu (gizli dosyalarıyla beraber) wen sunucunuzun kök dizinine koyabilmelisiniz. Böylelikle web tarayıcınızı kullanarak uygulamanıza erişim sağlayabilirsiniz.

Canlı sistem

Calışan canlı bir sistemde CakePHP kurulumu daha esnek seçenekler sağlar. Bu yolu kullanarak, bütün domainin tek bir CakePHP uygulaması olarak çalışmasını sağlayabilirsiniz. Bu örnek size CakePHP’yi dosyas isteminde herhangi bir yere kurmanıza ve uygulamanın http://www.example.com adresinden erişebilmenize yardım edecektir. Bu kurulumun apache sunucularda DocumentRoot dizinine yazma hakkı gerektirdiğine dikkat edin.

After installing your application using one of the methods above into the directory of your choosing - we’ll assume you chose /cake_install - your production setup will look like this on the file system:

/cake_install/
    bin/
    config/
    logs/
    plugins/
    src/
    tests/
    tmp/
    vendor/
    webroot/ (this directory is set as DocumentRoot)
    .gitignore
    .htaccess
    .travis.yml
    composer.json
    index.php
    phpunit.xml.dist
    README.md

Developers using Apache should set the DocumentRoot directive for the domain to:

DocumentRoot /cake_install/webroot

If your web server is configured correctly, you should now find your CakePHP application accessible at http://www.example.com.

Fire It Up

Alright, let’s see CakePHP in action. Depending on which setup you used, you should point your browser to http://example.com/ or http://localhost:8765/. At this point, you’ll be presented with CakePHP’s default home, and a message that tells you the status of your current database connection.

Congratulations! You are ready to create your first CakePHP application.

URL Rewriting

Apache

While CakePHP is built to work with mod_rewrite out of the box–and usually does–we’ve noticed that a few users struggle with getting everything to play nicely on their systems.

Here are a few things you might try to get it running correctly. First look at your httpd.conf. (Make sure you are editing the system httpd.conf rather than a user- or site-specific httpd.conf.)

These files can vary between different distributions and Apache versions. You may also take a look at http://wiki.apache.org/httpd/DistrosDefaultLayout for further information.

Make sure that an .htaccess override is allowed and that AllowOverride is set to All for the correct DocumentRoot. You should see something similar to:

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
    Options FollowSymLinks
    AllowOverride All
#    Order deny,allow
#    Deny from all
</Directory>

Make sure you are loading mod_rewrite correctly. You should see something like:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

In many systems these will be commented out by default, so you may just need to remove the leading # symbols.

After you make changes, restart Apache to make sure the settings are active.

Verify that your .htaccess files are actually in the right directories. Some operating systems treat files that start with ‘.’ as hidden and therefore won’t copy them.

Make sure your copy of CakePHP comes from the downloads section of the site or our Git repository, and has been unpacked correctly, by checking for .htaccess files.

CakePHP app directory (will be copied to the top directory of your application by bake):

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$    webroot/    [L]
   RewriteRule    (.*) webroot/$1    [L]
</IfModule>

CakePHP webroot directory (will be copied to your application’s web root by bake):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

If your CakePHP site still has problems with mod_rewrite, you might want to try modifying settings for Virtual Hosts. On Ubuntu, edit the file /etc/apache2/sites-available/default (location is distribution-dependent). In this file, ensure that AllowOverride None is changed to AllowOverride All, so you have:

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /var/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

On macOS, another solution is to use the tool virtualhostx [http://clickontyler.com/virtualhostx/] to make a Virtual Host to point to your folder.

For many hosting services (GoDaddy, 1and1), your web server is actually being served from a user directory that already uses mod_rewrite. If you are installing CakePHP into a user directory (http://example.com/~username/cakephp/), or any other URL structure that already utilizes mod_rewrite, you’ll need to add RewriteBase statements to the .htaccess files CakePHP uses (.htaccess, webroot/.htaccess).

This can be added to the same section with the RewriteEngine directive, so for example, your webroot .htaccess file would look like:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /path/to/app
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

The details of those changes will depend on your setup, and can include additional things that are not related to CakePHP. Please refer to Apache’s online documentation for more information.

(Optional) To improve production setup, you should prevent invalid assets from being parsed by CakePHP. Modify your webroot .htaccess to something like:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /path/to/app/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/(webroot/)?(img|css|js)/(.*)$
    RewriteRule ^ index.php [L]
</IfModule>

The above will simply prevent incorrect assets from being sent to index.php and instead display your webserver’s 404 page.

Additionally you can create a matching HTML 404 page, or use the default built-in CakePHP 404 by adding an ErrorDocument directive:

ErrorDocument 404 /404-not-found

nginx

nginx does not make use of .htaccess files like Apache, so it is necessary to create those rewritten URLs in the site-available configuration. Depending upon your setup, you will have to modify this, but at the very least, you will need PHP running as a FastCGI instance:

server {
    listen   80;
    server_name www.example.com;
    rewrite ^(.*) http://example.com$1 permanent;
}

server {
    listen   80;
    server_name example.com;

    # root directive should be global
    root   /var/www/example.com/public/webroot/;
    index  index.php;

    access_log /var/www/example.com/log/access.log;
    error_log /var/www/example.com/log/error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

IIS7 (Windows hosts)

IIS7 does not natively support .htaccess files. While there are add-ons that can add this support, you can also import htaccess rules into IIS to use CakePHP’s native rewrites. To do this, follow these steps:

Use Microsoft’s Web Platform Installer [http://www.microsoft.com/web/downloads/platform.aspx] to install the URL Rewrite Module 2.0 [http://www.iis.net/downloads/microsoft/url-rewrite] or download it directly (32-bit [http://www.microsoft.com/en-us/download/details.aspx?id=5747] / 64-bit [http://www.microsoft.com/en-us/download/details.aspx?id=7435]).

Create a new file called web.config in your CakePHP root folder.

Using Notepad or any XML-safe editor, copy the following code into your new web.config file:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Exclude direct access to webroot/*"
                  stopProcessing="true">
                    <match url="^webroot/(.*)$" ignoreCase="false" />
                    <action type="None" />
                </rule>
                <rule name="Rewrite routed access to assets(img, css, files, js, favicon)"
                  stopProcessing="true">
                    <match url="^(img|css|files|js|favicon.ico)(.*)$" />
                    <action type="Rewrite" url="webroot/{R:1}{R:2}"
                      appendQueryString="false" />
                </rule>
                <rule name="Rewrite requested file/folder to index.php"
                  stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <action type="Rewrite" url="index.php"
                      appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Once the web.config file is created with the correct IIS-friendly rewrite rules, CakePHP’s links, CSS, JavaScipt, and rerouting should work correctly.

I Can’t Use URL Rewriting

If you don’t want or can’t get mod_rewrite (or some other compatible module) up and running on your server, you’ll need to use CakePHP’s built in pretty URLs. In config/app.php, uncomment the line that looks like:

'App' => [
    // ...
    // 'baseUrl' => env('SCRIPT_NAME'),
]

Also remove these .htaccess files:

/.htaccess
webroot/.htaccess

This will make your URLs look like www.example.com/index.php/controllername/actionname/param rather than www.example.com/controllername/actionname/param.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Configuration

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Routing

class Cake\Routing\Router

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Dispatcher Filters

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Dispatcher Filters

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Request & Response Objects

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Request

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Controllers

class Cake\Controller\Controller

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

More on Controllers

The Pages Controller

Components

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

The Pages Controller

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Components

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Authentication

Cookie

Cross Site Request Forgery

Flash

Security

Pagination

Request Handling

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Authentication

class AuthComponent(ComponentCollection $collection, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Cookie

class Cake\Controller\Component\CookieComponent(ComponentRegistry $collection, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Cross Site Request Forgery

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Flash

class Cake\Controller\Component\FlashComponent(ComponentCollection $collection, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

For more information about rendering your flash messages, please refer to the FlashHelper section.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Security

class SecurityComponent(ComponentCollection $collection, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Pagination

class Cake\Controller\Component\PaginatorComponent

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Request Handling

class RequestHandlerComponent(ComponentCollection $collection, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Views

class Cake\View\View

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

More About Views

View Cells

Themes

JSON and XML views

Helpers

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

View Cells

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Themes

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

JSON and XML views

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Helpers

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Breadcrumbs

Flash

Form

Html

Number

Paginator

Rss

Session

Text

Time

Url

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Breadcrumbs

class Cake\View\Helper\BreadcrumbsHelper(View $view, array $config = [])

3.3.6 sürümüyle geldi.

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Flash

class Cake\View\Helper\FlashHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Form

class Cake\View\Helper\FormHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Html

class Cake\View\Helper\HtmlHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Number

class Cake\View\Helper\NumberHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Paginator

class Cake\View\Helper\PaginatorHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Rss

class Cake\View\Helper\RssHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Session

class Cake\View\Helper\SessionHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Text

class Cake\View\Helper\TextHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Time

class Cake\View\Helper\TimeHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Url

class Cake\View\Helper\UrlHelper(View $view, array $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Database Access & ORM

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

More Information

Database Basics

Query Builder

Table Objects

Entities

Retrieving Data & Results Sets

Validating Data

Saving Data

Deleting Data

Associations - Linking Tables Together

Behaviors

Core Behaviors

Schema System

ORM Cache Shell

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Database Basics

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Query Builder

class Cake\ORM\Query

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Table Objects

class Cake\ORM\Table

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Entities

class Cake\ORM\Entity

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Retrieving Data & Results Sets

class Cake\ORM\Table

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Validating Data

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Saving Data

class Cake\ORM\Table

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Deleting Data

class Cake\ORM\Table

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Associations - Linking Tables Together

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Behaviors

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Core Behaviors

CounterCache

Timestamp

Translate

Tree

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

CounterCache

class Cake\ORM\Behavior\CounterCacheBehavior

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Timestamp

class Cake\ORM\Behavior\TimestampBehavior

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Translate

class Cake\ORM\Behavior\TranslateBehavior

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Tree

class Cake\ORM\Behavior\TreeBehavior

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Schema System

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

ORM Cache Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Bake Console

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Code Generation with Bake

Extending Bake

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Code Generation with Bake

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Extending Bake

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Caching

class Cake\Cache\Cache

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Konsol ve Kabuklar

CakePHP sadece bir web uygulama çatısı değil, aynı zamanda konsol uygulamaları yaratmanızı sağlayan bir konsol uygulama çatısıdır. Konsol uygulamaları bakım ve istek cevap döngüsü dışında işleri tamamlamak için gerekli olan çeşitli arka plan uygulamalarıyla başa çıkarlar. CakePHP konsol uygulamaları, uygulama sınıflarınızı komut satırı vasıtasıyla tekrar kullanabilmenizi sağlarlar.

CakePHP kutudan birçok konsol uygulaması ile çıkar. Bunlardan bazıları CakePHP’nin i18n gibi özelliklerini kullanabilmek için, bazıları da işlerinizi hızlandırmakta kullanılırlar.

CakePHP Konsolu

Bu bölüm, CakePHP’yi komut satırından kullanmaya giriş yapmaktadır. Konsol araçları, cron görevleri, veya web tarayıcı tarafından ulaşılmasına gerek olmayan işlerde kullanılmak için ideallerdir.

PHP, dosya sistemine ve uygulamasına yumuşak bir arayüz olarak bir komut satırı istemcisi sunmaktadır. CakePHP konsolu ise kabuk komut dosyaları oluşturmaya yarayan bir uygulama çatısı sunar. Konsol, bir kabuğu veya görevi yüklemek için sevk-tarzı kurulum kurulum kullanır ve paramaterlerini getirir.

Not

Konsolu kullanmayı amaçlıyorsanız bir PHP comput satırı (CLI) derlemesi sisteminizde mevcut olmalıdır.

Detaylara geçmeden önce, CakePHP konsolunu çalıştırabildiğinizden emin olalım. Önce bir sistem kabuğu getirmeniz gerekir. Bu bölümdeki örnekler bash üzerinde gösterilecekler, ancak CakePHP konsolu Windows ile de uyumludur. Bu örnek, kullanıcının bir bash istemcisinde oturumu olduğunu ve CakePHP uygulamasının kök dizininde olduğunu varsaymaktadır.

CakePHP uygulamaları bir uygulama için tüm kabuk ve görevleri içeren Console dizini içerirler. Ayrıca çalıştırılabilir uygulama da mevcuttur:

$ cd /path/to/app
$ bin/cake

Konsolu argümanlar olmadan çalıştırmak şu yardım mesajını üretir:

Welcome to CakePHP v3.0.0 Console
---------------------------------------------------------------
App : App
Path: /Users/markstory/Sites/cakephp-app/src/
---------------------------------------------------------------
Current Paths:

 -app: src
 -root: /Users/markstory/Sites/cakephp-app
 -core: /Users/markstory/Sites/cakephp-app/vendor/cakephp/cakephp

Changing Paths:

Your working path should be the same as your application path. To change your path use the '-app' param.
Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp

Available Shells:

[CORE] bake, i18n, server, test

[app] behavior_time, console, orm

To run an app or core command, type cake shell_name [args]
To run a plugin command, type cake Plugin.shell_name [args]
To get help on a specific command, type cake shell_name --help

Ekranda görülen ilk bilgi, sistem yollarıyla ilgilidir. Eğer konsolu dosya siteminin farklı yollarından çağırıyorsanız bu size yardımcı olacaktır.

class Cake\Console\Shell

Bir Kabuk Yaratmak

Haydi Konsolda kullanmak için bir kabuk yaratalaım. Bu örnek için basit bir Merhaba Dünya kabuğu yaratacağız. Uygulamanızın src/Shell dizininde HelloShell.php dosyasını yaratın. Şu kodları dosyanın içine ekleyin:

namespace App\Shell;

use Cake\Console\Shell;

class HelloShell extends Shell
{
    public function main()
    {
        $this->out('Hello world.');
    }
}

Kabuk sınıfları için kurallar dosya isminin, sınıf ismiyle ve Kabuk soneki ile aynı olmasını gerektirirler. Kabuğumuzda main() metodu oluşturduk. Bu metod, kabuk ilave metodlar olmadan çağırıldığında çağırılır. Bir kaç komut daha ekleyeceğiz, ama şimdilik, sadece kabuğumuzu çalıştıralım. Uygulama dizininizden şu komutları çalıştırın:

bin/cake hello

Şu çıktıyı görmelisiniz:

Welcome to CakePHP Console
---------------------------------------------------------------
App : app
Path: /Users/markstory/Sites/cake_dev/src/
---------------------------------------------------------------
Hello world.

Daha önceden belirtildiği gibi kabuklardaki main() metodu, kabuğa başka bir komut veya argüman verilmediğinde çağırılmaktadır. Main metodu çok ilginç olmadığı için birşeyler yapan başka bir metod daha ekleyelim:

namespace App\Shell;

use Cake\Console\Shell;

class HelloShell extends Shell
{
    public function main()
    {
        $this->out('Hello world.');
    }

    public function heyThere($name = 'Anonymous')
    {
        $this->out('Hey there ' . $name);
    }
}

Bu dosyayı kaydettikten sonra şu komutu çalıştırabilmeli ve kendi adınızı çıktı olarak görebilmelisiniz:

bin/cake hello hey_there your-name

_ karakterleri ile başlamayan tüm public metodlar komut satırından çağırılabilirler. Gördüğünüz gibi komut satırından çağırılan metodlar, altçizgili kabuk argümanından, doğru camel-case metod adına dönüşmektedirler.

heyThere() metodumuzda, pozisyona bağlı argümanların metodumuza gönderildiğini görmekteyiz. Pozisyona bağlı argümanlar, args özelliğinde de mevcutturlar.

In our heyThere() method we can see that positional arguments are provided to our heyThere() function. Positional arguments are also available in the args property. Kabuk uygulamalarındaki anahtarlara veya seçeneklere $this->params ile de ulaşabiliriz, ancak bu konuya daha sonra değineceğiz.

main() metodunu kullanıdğınızda pozisyona bağlı argümanlara erişmeniz mümkün değildir. Çünkü, ilk pozisyona bağlı argüman, komut ismi olarak yorumlanmaktadır. Eğer argüman kullanmak istiyorsanız, main dışında bir metod ismi kullanmalısınız.

Kabuklarınızda Model Kullanmak

Kabuk araçlarında sıklıkla uygulamanızın iş mantığına ulaşmaya ihtiyaç duyacaksınız ki; CakePHP bu işi acayip kolaylaştırıyor. Modelleri denetçilerde loadModel() metodu ile yüklediğiniz gibi, kabuklarda da yükleyebilirsiniz. Yüklenmiş modeller, kabuğa iliştirilmiş özellikler olarak ayarlanırlar:

namespace App\Shell;

use Cake\Console\Shell;

class UserShell extends Shell
{

    public function initialize()
    {
        parent::initialize();
        $this->loadModel('Users');
    }

    public function show()
    {
        if (empty($this->args[0])) {
            return $this->error('Please enter a username.');
        }
        $user = $this->Users->findByUsername($this->args[0])->first();
        $this->out(print_r($user, true));
    }
}

Yukarıdaki kabuk, bir kullanıcıyı, kullanıcı adına göre getirecek ve veritabanında depolanan bilgiyi gösterecektir.

Kabuk Görevleri

Tekrar kullanılabilir sınıflarınızı diğer kabuklar arasında paylaşmak ve kullanmak isteyeceğiniz zamanlar olabilir. Görevler komutları There will be times when building more advanced console applications, you’ll want to compose functionality into re-usable classes that can be shared across many shells. Görevler, komutları sınıflara çıkarmanıza yarar. Örneğin, bake neredeyse tamamen görevlerden oluşmuştur. $tasks özelliğini kullanarak bir görev tanımayabilirsiniz:

class UserShell extends Shell {
    public $tasks = ['Template'];
}

Standart eklenti sözdizimi kullanarak, eklenti görevlerini kullanabilirsiniz. Görevler, kendi sınıflarının ismini alan Shell/Task/ dizinlerinde bulunurlar. Örneğin yeni bir ‘FileGenerator’ görevi yaratmak isteseydik src/Shell/Task/FileGeneratorTask.php dosyasını yaratmanız gerekecekti.

Her görev bir main() metoduna sahip olmak zorundadır. ShellDispatcher görev her çalıştırıldığında bu metodu çağıracaktır. Bir görev sınıfı şu şekilde görünür:

namespace App\Shell\Task;

use Cake\Console\Shell;

class FileGeneratorTask extends Shell {
    public function main() {

    }
}

Bir kabuk, kendi görevinin özelliklerine de erişebilir ki, bu da görevleri, yeniden kullanılabilir işlevleri Components gibi kullanabilmemizi sağlar:

// Found in src/Shell/SeaShell.php
class SeaShell extends Shell
{
    // Found in src/Shell/Task/SoundTask.php
    public $tasks = ['Sound'];

    public function main()
    {
        $this->Sound->main();
    }
}

Görevlere doğrudan komut satırından ulaşabilirsiniz:

$ cake sea sound

Not

Görevlere doğrudan ulaşabilmek için, görev kesinlikle kabuk sınıfının $tasks özelliğinde mevcut olmalıdır.

Ayrıca görev ismi, Kabuğun OptionParser’ine de alt komut olarak eklenmelidir:

public function getOptionParser() {
        $parser = parent::getOptionParser();
        $parser->addSubcommand('sound', [
                'help' => 'Execute The Sound Task.'
        ]);
        return $parser;
}

Görevleri TaskRegistry İle Anında Yüklemek

Görev kayıt nesnesi (TaskRegistry) ile görevleri anında yükleyebilirsiniz. $tasks özelliğinde bildirilmemiş görevleri şu şekilde yükleyebilirsiniz:

$project = $this->Tasks->load('Project');

ProjectTask nesnesinden örneği (instance) yükleyecek ve döndürecektir. Eklentilerdeki görevleri şunu kullanarak yükleyebilirsiniz:

$progressBar = $this->Tasks->load('ProgressBar.ProgressBar');

Kabuğunuzdan Başka Kabukları Çağırmak

Cake\Console\Shell::dispatchShell($args)

Başka bir kabuktan başka bir kabuğu çağırmayı isteyeceğiniz bir çok durum olacaktır. Shell::dispatchShell() size argv sunarak, alt kabukta diğer sınıfları çalışma becerisi sağlar. Argümanları ve seçenekleri, args değişkeni olarak veya metin (string) olarak sunabilirsiniz:

// Metin olarak
$this->dispatchShell('schema create Blog --plugin Blog');

// Dizi olarak
$this->dispatchShell('schema', 'create', 'Blog', '--plugin', 'Blog');

Yukarıdaki örnek şema kabuğunu eklenti kabuğunda çağırarak bir eklenti için nasıl yeni bir şema oluşturabileceğinizi göstermektedir.

Kullanıcı Girdisi Almak

Cake\Console\Shell::in($question, $choices = null, $defaut = null)

Ektileşimli konsol uygulamaları yaparken, kullanıcısan girdi almanız gerekir. CakePHP bunun için kulay bir yol sunar:

// Kullanıcıdan isteğe bağlı metin almak
$color = $this->in('What color do you like?');

// Kullanıcının bir seçeneği seçmesini istemek
$selection = $this->in('Red or Green?', ['R', 'G'], 'R');

Seçim doğrulaması harf duyarsızdır.

Dosya Yaratmak

Cake\Console\Shell::createFile($path, $contents)

Çoğu kabuk uygulaması, geliştirme ve yükleme (deployment) görevlerini otomatiğe bağlamaya yerdımcı olur. Dosya yaratma işi de sıkça karşımıza çıkan önemli durumlardan biridir. CakePHP verilen yolda dosyayı yaratmanın kolay bir yolunu sunar:

$this->createFile('bower.json', $stuff);

Eğer kabuk etkileşimli ise, bir uyarı üretilecektir ve eğer dosya mevcutsa, kullanıcıya dosyanın üzerine yazıp yazmamak istediği sorulacaktır. Eğer kabuğun etkileşim özelliği false ise, soru sorulmayacak ve dosya doğrudan üzerine yazılacaktır.

Konsol Çıktısı

Shell sınıfı çıktı almak için bir kaç metod sunar:

// stdout'a yazar
$this->out('normal message');

// stderr'e yazar
$this->err('error message');

// stderr'e yazar ve işlemi durdurur
$this->error('Fatal error');

Kabuk ayrıca, çıktıyı temizlemek, boş satırlar üretmek veya noktalı çizgi satırı çizmek için metodlar içerir:

// İki yeni satır çıkarır
$this->out($this->nl(2));

// Kullanıcının ekranını temizler
$this->clear();

// Yatay bir çizgi çizer
$this->hr();

Son olarak _io->overwrite() ekrandaki metin satırını güncelleyebilirsiniz:

$this->out('Counting down');
$this->out('10', 0);
for ($i = 9; $i > 0; $i--) {
    sleep(1);
    $this->_io->overwrite($i, 0, 2);
}

Eğer bir metin çıktısı yapıldıysa, üzerine yazılamayacağını hatırlamak önemlidir.

Konsol Çıktı Seviyeleri

Kabuklar sıklıkla farklı önem seviyelerine ihtiyaç duyarlar. Kabuklar cron işleri olarak çağırıldıklarında çoğu çıktı gereksizdir. Ve kabuğun her söylediği şeyle ilgilenmiyor olduğunuz durumlar olacaktır. Çıktıları uygun olarak işaretlemek için, çıktı seviyelerini kullanabilirsiniz. Kabuğu kullanan kişi, çıktının detay seviyesini belirterek, kabuğun üreteceği çıktıları sınırlandırabilir. Cake\Console\Shell::out() varsayılan olarak 3 çıktı türünü desteklemektedir.

QUIET - Sadece kesinlikle önemli olan bilgi sessiz çıktı için işaretlenmelidir.

NORMAL - Varsayılan seviye, normal kullanım.

VERBOSE - Günlük kullanım için fazla gürültülü, ancak hata ayıklama işleri için faydalı olan mesajları işaretler

Çıktıyı şu şekilde işaretleyebilirsiniz:

// Her seviyede görünecektir.
$this->out('Quiet message', 1, Shell::QUIET);
$this->quiet('Quiet message');

// Sessiz çıktı seçildiğinde görünmeyecektir.
$this->out('normal message', 1, Shell::NORMAL);
$this->out('loud message', 1, Shell::VERBOSE);
$this->verbose('Verbose output');

// Sadece gürültülü (verbose) çıktı seçildiğinde görünecektir.
$this->out('extra message', 1, Shell::VERBOSE);
$this->verbose('Verbose output');

Kabukların çıktı seviyelerini --quiet ve --verbose seçeneklerini kullanarak kontrol edebilirsiniz. Bu seçenekler varsayılan olarak eklenmişlerdir ve CakePHP kabuklarınız içinde çıktıyı uyumlu olarak kontrol etmenizi sağlarlar.

Çıktıyı Şekillendirmek

Çıktıyı şekillendirme işi, - aynen HTML gibi - çıktılarda etiketler kullanılarak yapılır. ConsoleOutput bu etiketleri doğru ansi kodu sıralaması ile değiştirecek, ya da ansi kodlarını desteklemeyen bir konsoldaysanız, kaldıracaktır. Birkaç gömülü şekil vardır ve daha fazlasını da yaratabilirsiniz. Gömülü olanlar şunlardır

error Hata mesajları. Kırmızı renki alt çizgili metin.

warning Uyarı mesajları. Sarı renkli metin.

info Bilgi mesajları. Camgöbeği renkli metin.

comment İlave metin. Mavi renkli medit.

question Kabuk tarafından otomatik olarak eklenen soru metni.

Ek şekillednirmeleri $this->stdout->styles() kullanarak yaratabilirsiniz. Yeni bir çıktı şekli yaratmak için:

$this->_io->styles('flashy', ['text' => 'magenta', 'blink' => true]);

Bu kabuk çıktılarınızda <flashy> etiketi kullanmanıza izin verecektir ve eğer ansi renkleri etkinleştirildiyse, bu kod yanıp sönen aflatun renkli metin olarak gösterilecektir $this->out('<flashy>Whoooa</flashy> Something went wrong');. Şekillendirmeleri belirlerken text ve background özellikleri için şu renkleri kullanabilirsiniz:

black (siyah)

red (kırmızı)

green (yeşil)

yellow (sarı)

blue (mavi)

magenta (eflatun)

cyan (camgöbeği)

white (beyaz)

Ayrıca şu seçenekleri de etkinleştirip kullanabilirsiniz.

bold (kalın)

underline (altçizgi)

blink (yanıp sönen)

reverse (ters)

Bir şekillendirme eklendiğine, tüm ConsoleOutput örneklerinden erişilir olur, bu sayede stdout ve stderr nesnelerinde yeniden tanımlanmaları gerekmez.

Renklendirmeyi Kapatmak

Renklendirmeler çok güzel olsalar da, renklendirmeyi kapatmak veya hep açık tutmak isteyeceğiniz zamanlar olabilir:

$this->_io->outputAs(ConsoleOutput::RAW);

Üstteki kod, çıktı nesnesini, ham çıktı moduna sokacaktır. Ham çıktı modunda hiç şekillendirme yapılmaz. Kullanabileceğiniz üç mod mevucttur.

ConsoleOutput::RAW - Ham çıktı, stil veya biçimlendirme yok. Bu yöntem, eğer XML çıktısı alıyorsanız, hata ayıklama işlemi yapıyorsanız ya da stil çalışmıyorsa tercih edilmelidir.

ConsoleOutput::PLAIN - Güz metin çıktısı, bilinen biçimlendirme etiketleri silinecektir.

ConsoleOutput::COLOR - Renk kaçış kodları ile çıktı

Varsayılan olarak Unix sistemleri ConsoleOutput nesnelerini renkli olarak çıkarırlar. Windows sitemlerde ise, düz metin çıktısı, ANSICON çevre değişkeni tanımlanmadıysa varsayılan durumdadır.

Kanca metodları

Cake\Console\Shell::initialize()

Kabuğu başlatır, alt sınıflar için yapıcı metod olarak çalışır ve kabuk çalıştırılmadan önceki görevlerin yürütülmesini yapılandırır.

Cake\Console\Shell::startup()

Kabuğu başlatır ve hoşgeldiniz mesajını görüntüler. Komut veya ana yürütmeden önce kontrolü ve yapılandırmayı sağlar.

Sadece hoşgeldiniz bilgisini ya da ön komut akışını değiştirmek istiyorsanız bu metodu aşırı yükleyiniz.

Seçenekleri Yapılandırmak ve Yardım Üretmek

class Cake\Console\ConsoleOptionParser

ConsoleOptionParser bir komut satırı seçeneği sağlar ve argüman ayrıştırıcıdır.

OptionParser, sizin aynı anda iki hedefi gerçekleştirmenize olanak sağlar. İllin komutunuzdaki seçenekleri ve agümanları tanımlamanıza izin verir. Bu basit girdi doğrulamasını ve metod argümanlarını ayırmanızı sağlar. İkincisi, iyi biçimlendirilmiş bir doküman sunmanıza olanak verir.

CakePHP’deki konsol çerçevesi, kabuğun yapılandırma ayrıştırıcısını, $this->getOptionParser() çağırarak elde eder. Bu metodu aşırı yüklemek, OptionPArseri, beklenen kabuk girdisine göre yapılandırmanızı sağlar. Ayrıca altkomutlar ve görevler için farklı yapılandırmalar kullanabilmek için alkomut yapılandırması ayrıştırıcıları da yanımlayabilirsiniz. ConsoleOptionParser akıcı bir arayüz sağlar ve kolayca birden fazla yapılandırma/argüman ayarlamanızı sağlayan metodları içerir:

public function getOptionParser() {
    $parser = parent::getOptionParser();
    // Configure parser
    return $parser;
}

Akıcı Arayüz ile Bir Seçenek Ayrıştırıcıyı Yapılandırmak

Tüm seçenek ayrıştırıcı metodları zincirli olabilir (art arda gelebilir), bu sizin, tek bir dizi metod çağrısı haline tüm seçenek yapılandırıcısını tanımlanamanıza olanak sağlar:

public function getOptionParser()
{
    $parser = parent::getOptionParser();
    $parser->addArgument('type', [
        'help' => 'Either a full path or type of class.'
    ])->addArgument('className', [
        'help' => 'A CakePHP core class name (e.g: Component, HtmlHelper).'
    ])->addOption('method', [
        'short' => 'm',
        'help' => __('The specific method you want help on.')
    ])->description(__('Lookup doc block comments for classes in CakePHP.'));
    return $parser;
}

Zincirlemede izin verilen metodlar şunlardır:

description()

epilog()

command()

addArgument()

addArguments()

addOption()

addOptions()

addSubcommand()

addSubcommands()

Cake\Console\ConsoleOptionParser::description($text = null)

Seçenek ayrıştırıcısının açıklamasını gösterir ya da ayarlar. Açıklama aşağıdaki argüman ve seçenek bilgisini gösterir. Bir metin veya dizi göndererek, açıklamayı değiştirebilirsiniz. Argümanlarla çağırmak hali hazırdaki değeri döndürecektir:

// Set multiple lines at once
$parser->description(['line one', 'line two']);

// Read the current value
$parser->description();

Cake\Console\ConsoleOptionParser::epilog($text = null)

Seçenek ayrıştırıcısının sonuç bölümünü döndürür. Sonuç bölümü argüman ya da seçenek bilgisinden sonra gösterilir. Bir metin veya dizi göndererek, sonuç bölümünü değiştirebilirsiniz. Argümanlarla çağırmak hali hazırdaki değeri döndürecektir:

// Set multiple lines at once
$parser->epilog(['line one', 'line two']);

// Read the current value
$parser->epilog();

Argümanları Eklemek

Cake\Console\ConsoleOptionParser::addArgument($name, $params = [])

Konuma bağlı argümanlar, komut satırı araçları tarafından sıklıkla kullanılırlar ve ConsoleOptionParser konuma bağlı argümanları tanımlamanızı ve gerekli kılmanızı sağlar. $parser->addArgument(); ile bir seferde bir defa, ya da $parser->addArguments(); ile bir seferde birden fazla argüman ekleyebilirsiniz:

$parser->addArgument('model', ['help' => 'The model to bake']);

Argüman yaratırken şu seçenekleri de kullanabilirsiniz:

help Argüman için gösterilecek yardım metni

required Bu parametre gerekli ise.

index Argüman için dizin, eğer tanımsız ise, argüman, diğer argümanların sonuna konacaktır. Eğer aynı dizini birden fazla tanımlarsanız, ilkinin üzerine yazılacaktır.

choices Bu argüman için geçerli seçenekler dizisi. Boş bırakılmışsa, bütün değerler geçerlidir. parse() geçersiz bir değerle karşılaşırsa bir istisna (Exception) fırlatılacaktır.

Gerekli olarak işaretlenmiş argümanlar, ihmal edilirlerse, bir istisna (Exception) fırlatacaklardır. Sonuç olarak bunu kabuğunuzda işemek zorunda değilsiniz.

Cake\Console\ConsoleOptionParser::addArguments(array $args)

Birden fazla argümanı içeren bir diziye sahipseniz, birden fazla argümanı tek seferde eklemek için $parser->addArguments() kullanabilirsiniz.

$parser->addArguments([
    'node' => ['help' => 'The node to create', 'required' => true],
    'parent' => ['help' => 'The parent node', 'required' => true]
]);

ConsoleOptionParser’daki tüm yapıcı sınıflar gibi addArguments, akıcı bir metod zincirinin bir parçası olarak kullanılabilir.

Argümanları Doğrulamak

When creating positional arguments, you can use the required flag, to indicate that an argument must be present when a shell is called. Additionally you can use choices to force an argument to be from a list of valid choices:

$parser->addArgument('type', [
    'help' => 'The type of node to interact with.',
    'required' => true,
    'choices' => ['aro', 'aco']
]);

Bu örnek, girdi üzerinde doğrulaması bulunan gerekli bir argüman oluşturacaktır. Argüman yoksa veya hatalı bir değere sahipse, bir istisna fırlatılacak ve kabuk duracaktır.

Seçenekleri Eklemek

Cake\Console\ConsoleOptionParser::addOption($name, $options = [])

Seçenekler veya bayraklar da sıklıkla komut satırı araçlarında kullanılırlar. ConsoleOptionParser uzun veya kısa takma adlar kullanan ayarlar oluşturmayı, varsayılanlar ve boole anahtarları sunarak, sağlar. Seçenkler $parser->addOption() veya $parser->addOptions() kullanılarak yaratılabilirler.

$parser->addOption('connection', [
    'short' => 'c',
    'help' => 'connection',
    'default' => 'default',
]);

Buradaki örnek, kabuğu çağırdığınızda cake myshell --connection=other, cake myshell --connection other, veya cake myshell -c other kullanmanızı sağlamaktadır. Boole anahtarları da oluşturabilirsiniz. Bu anahtartlar, değerleri tüketmezler ve varlıkları ayrıştırılan parametrede etkinleştirilmelerini sağlar.

$parser->addOption('no-commit', ['boolean' => true]);

Bu seçenek ile, bir kabuğu cake myshell --no-commit something şeklinde çağırdığınıza, no-commit parametresi true değerini alacak ve ‘something’ konumsal argüman olarak değerlendirilecektir. Hazır olan --help, --verbose, ve --quiet seçenekleri bu özelliği kullanırlar.

Seçenekleri yaratırken, seçenek davranışını belirlemek için şu seçenekleri kullanabilirsiniz:

short - Bu seçenek için tek harf alternatifi. Boş bırakılabilir veya none.

help - Bu seçenek için yardım metni. Seçenk için yardım metni yaratılırken kullanılır.

default - Bu seçenek için varsayılan değer. Tanımlanmadıysa, varsayılan değer true olacaktır.

boolean - Bu seçenek, değer kullanmaz, sadece bir boole anahtarıdır. Varsayılan olarak false.

choices - Bu seçenek için geçerli bir seçimler dizisi. Eğer boş bırakıldıysa, tüm değerler geçerlidir. Eğer parse() geçersiz bir değerler karşılaşırse bir istisna fırlatılacaktır.

Cake\Console\ConsoleOptionParser::addOptions(array $options)

Birden fazla seçenek içeren bir diziye sahipseniz, birden fazla seçeneği tek seferde eklemek için $parser->addOptions() kullanabilirsiniz.

$parser->addOptions([
    'node' => ['short' => 'n', 'help' => 'The node to create'],
    'parent' => ['short' => 'p', 'help' => 'The parent node']
]);

ConsoleOptionParser’deki tüm diğer yapıcı metodlarla birlikte, addOrtions akıcı metod zincirinin bir parçası olarak kullanılabilir.

Seçenekleri Doğrulamak

Seçenekler, konumsal argümanlar gibi, seçimler kümesiyle birlikte sunulabilirler. Bir seçenek, seçimleri tanımladıys, o seçenek için, geçerli olan tek seçimler bunlardır. Tüm diğer değerler bir InvalidArgumentException istisnası fırlatacaklardır:

$parser->addOption('accept', [
    'help' => 'What version to accept.',
    'choices' => ['working', 'theirs', 'mine']
]);

Boole Seçenekler Eklemek

Bazı bayrak seçenekleri tanımlamak istediğinizde boole kullanabilirsiniz. Varsayılana sahip olan seçenekler gibi, boole seçenekleri, her zaman kendilerini ayrıştırılan parametreler içinde tanımlarlar. Eğer bir bayrak mevcutsa değeri true, eğer bayrak yoksa değeri false olur:

$parser->addOption('verbose', [
    'help' => 'Enable verbose output.',
    'boolean' => true
]);

Bir sonraki seçenek, $this->params['verbose'] içinde her zaman mevcut olacaktır. Bu size boole bayrakları için empty() ve isset() kontrollerini ihmal edebilme olanağı verir:

if ($this->params['verbose']) {
    // Do something.
}

Boole seçenekleri her zaman true veya false olacakları için, ek kontrol metodlarını ihmal etmeniz mümkündür.

Altkomutları Eklemek

Cake\Console\ConsoleOptionParser::addSubcommand($name, $options = [])

Konsol uygulamaları genellikle altkomutlardan oluşurlar ve bu altkomutlar özel seçenek ayrıştıma ve kendi yardım metodlarını ihtiyaç duyabilirler. Bunun için en mükemmel örnek bake dir. Bake, kendine ait yardım ve seçenekleri içeren görevlerden oluşur. ConsoleOptionParser size alkomutlarını tanımlama ve komuta özel seçenek ayrıştırıcıları sunmanız olanağını sağlar. Bu sayede kabuk görevler için komutların nasıl ayrıştırılacağını bilecektir:

$parser->addSubcommand('model', [
    'help' => 'Bake a model',
    'parser' => $this->Model->getOptionParser()
]);

Üstteki örnek, bir kabuk görevi için, nasıl yardım ve özelleştirilmiş seçenek ayrıştırıcısı sunacağınızı göstermektedir. Görevin getOptionParser() metodunu çağırarak, seçenek ayrıştırıcısı üretimini iki kere çalıştırmamış ve birşeyleri karıştırmaktan endişe duymamış oluyoruz. Altkomutları bu şekilde eklemenin iki avantajı mevcuttur. İlk olarak, oluşturulan yardım içerisinde kabuğunuzun altkomutlarını kolayca dokümante etmesini sağlar. Aynı zamanda, altkomut yardımına kolay erişim sağlar. Şu komut ile cake myshell --help altkomutların listesini görebilir, cake myshell model --help çalıştırarak da, yardımı veya sadece model görevi görüntüleyebilirsiniz.

Not

Bir kez Kabuk altkomutları tanımladığında, tüm altkomutlar açıkça tanımlanmalıdırlar.

Bir altkomutu tanımlarken şu seçenekleri kullanabilirsiniz:

help - Alt Komut için yardım metni.

parser - Alt Komut için ConsoleOptionParser. Bu size metoda özel seçenek ayrıştırıcıları yaratma olanağı verir. Yardım üretildiğinde eğer bir ayrıştırıcı mevcutsa, kullanılacaktır. Aynı zamanda ayrıştırıcıyı Cake\Console\ConsoleOptionParser::buildFromArray() ile uyumlu bir dizi olarak da sunabilirsiniz.

Altkomut eklemek, akıcı metod zincirinin bir parçası olarak yapılabilir.

Bir Diziden ConsoleOptionParser Oluşturmak

Cake\Console\ConsoleOptionParser::buildFromArray($spec)

Daha önceden belirtildiği üzere, alkomut seçenek ayrıştırıcısı yaratırken, ayrıştırıcı tanımlamasını, o metod için bir dizi olarak tanımlayabilirsiniz. Bu altkomut ayrıştırıcılarının yapılmasını, herşeyi bir dizi içine atmak kadar kolaylaştırır:

$parser->addSubcommand('check', [
    'help' => __('Check the permissions between an ACO and ARO.'),
    'parser' => [
        'description' => [
            __("Use this command to grant ACL permissions. Once executed, the "),
            __("ARO specified (and its children, if any) will have ALLOW access "),
            __("to the specified ACO action (and the ACO's children, if any).")
        ],
        'arguments' => [
            'aro' => ['help' => __('ARO to check.'), 'required' => true],
            'aco' => ['help' => __('ACO to check.'), 'required' => true],
            'action' => ['help' => __('Action to check')]
        ]
    ]
]);

Ayrıştırıcı tanımlaması içerisinde, arguments, options, description ve epilog için anahtarlar tanımlayabilirsiniz. Dizi stili bir kurucu içinde subcommands (altkomutlar) tanımlayamazsınız. Argümanlar ve seçenekler için değerler, Cake\Console\ConsoleOptionParser::addArguments() ve Cake\Console\ConsoleOptionParser::addOptions() metodlarının kullandıkları formata uygun olmalıdırlar. Ayrıca bir seçenek ayrıştırıcısı yaratmak için buildFromArray metodunu tek başına da kullanabilirsiniz:

public function getOptionParser()
{
    return ConsoleOptionParser::buildFromArray([
        'description' => [
            __("Use this command to grant ACL permissions. Once executed, the "),
            __("ARO specified (and its children, if any) will have ALLOW access "),
            __("to the specified ACO action (and the ACO's children, if any).")
        ],
        'arguments' => [
            'aro' => ['help' => __('ARO to check.'), 'required' => true],
            'aco' => ['help' => __('ACO to check.'), 'required' => true],
            'action' => ['help' => __('Action to check')]
        ]
    ]);
}

ConsoleOptionParsers (KonsolSeçenekAyrıştırıcıları) Birleştirmek

Cake\Console\ConsoleOptionParser::merge($spec)

Bir grup metodunu oluştururken, birden fazla ayrıştırıcıları bir arada kullanmak isteyebilirsiniz:

$parser->merge($anotherParser);

Çalışma için argümanların sırasının her ayrıştırıcı için aynı olduğunu ve seçeneklerin uyumlu olması gerektiğini not ediniz. Bu yüzden farklı şeyler için anahtarlar kullanmayınız.

Kabuklardan Yardım Almak

ConsoleOptionParser eklenmesiyle, kabuklardan yardım almak tutarlı ve muntazam bir şekilde yapılmaktadır. --help veya -h seçeneğini kullanarak, herhangi bir çekirdek veya ConsoleOptionParser uygulayan herhangi bir kabuktaki yardımı görüntüleyebilirsiniz:

cake bake --help
cake bake -h

İkisi de bake için yardımı üretecektir. Eğer kabuk altkomutları destekliyorsa benzer bir şekilde yardımı görüntüleyebilirsiniz:

cake bake model --help
cake bake model -h

Bu bake işleminin model görevine özel yardımı size gösterecektir.

XML Olarak Yardım Almak

CakePHP kabuklarıyla etkileşimli olması gereken otomatik araçlar yaparken, yardımın makinenin ayrıştıabileceği bir biçimde olması faydalı olacaktır. ConsoleOptionParser bir ek argümanın tanımlanmasıyla yardımı xml olarak sunabilir:

cake bake --help xml
cake bake -h xml

Üstteki örnek seçilen kabuk için yardım, seçenekler, argümanlar ve altkomutlar içeren XML belgesini döndürecektir. Örnek bir XML belgesi şu sekilde görünür:

<?xml version="1.0"?>
<shell>
    <command>bake fixture</command>
    <description>Generate fixtures for use with the test suite. You can use
        `bake fixture all` to bake all fixtures.</description>
    <epilog>
        Omitting all arguments and options will enter into an interactive
        mode.
    </epilog>
    <subcommands/>
    <options>
        <option name="--help" short="-h" boolean="1">
            <default/>
            <choices/>
        </option>
        <option name="--verbose" short="-v" boolean="1">
            <default/>
            <choices/>
        </option>
        <option name="--quiet" short="-q" boolean="1">
            <default/>
            <choices/>
        </option>
        <option name="--count" short="-n" boolean="">
            <default>10</default>
            <choices/>
        </option>
        <option name="--connection" short="-c" boolean="">
            <default>default</default>
            <choices/>
        </option>
        <option name="--plugin" short="-p" boolean="">
            <default/>
            <choices/>
        </option>
        <option name="--records" short="-r" boolean="1">
            <default/>
            <choices/>
        </option>
    </options>
    <arguments>
        <argument name="name" help="Name of the fixture to bake.
            Can use Plugin.name to bake plugin fixtures." required="">
            <choices/>
        </argument>
    </arguments>
</shell>

Kabuklarda Yönlendirme / CLI (KSA)

Komut Satırı Arayüzünde (KSA/CLI), özellikle kabuk ve görevlerinizde env('HTTP_HOST') ve diğer web tarayıcı bağımlı çevre değişkenleri tanımlı değillerdir.

Eğer rapor üretiyorsanız veya varsayılan ana sunucu http://localhost/ içeren Router::url() metodlarını kullanan raporlar ve epostalar gönderiyorsanız, hatalı URL’lerle karşılaşabilirsiniz. Bu durumda, alanı (domain’i) el lie belirtmelisiniz. Örnek olarak bunu bootstrap veya config dosyalarından App.fullBaseUrl Yapılandırma (Configure) değerlerini kullanarak yapabilirsiniz.

Eposta göndermek için Email sınıfını maili göndermek istediğiniz ana makine ile getirmelisiniz:

use Cake\Mailer\Email;

$email = new Email();
$email->domain('www.example.org');

Üretilen mesaj ID’lerinin doğrulanmış ve epostaların alanlarına uyduğu farzedilmektedir.

Diğer Konular

Shell Helpers

Interactive Console (REPL)

Running Shells as Cron Jobs

I18N Shell

Completion Shell

Plugin Shell

Routes Shell

Upgrade Shell

Server Shell

Cache Shell

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Shell Helpers

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Interactive Console (REPL)

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Running Shells as Cron Jobs

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

I18N Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Completion Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Plugin Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Routes Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Upgrade Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Server Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Cache Shell

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Debugging

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Deployment

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Email

class Cake\Mailer\Email(mixed $profile = null)

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Error & Exception Handling

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Events System

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Additional Reading

Behaviors

Components

Helpers

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Internationalization & Localization

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Logging

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Modelless Forms

class Cake\Form\Form

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Plugins

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

REST

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Security

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

Security

Cross Site Request Forgery

Security

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Security

class Cake\Utility\Security

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Sessions

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Testing

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Validation

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

App Class

class Cake\Core\App

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Collections

class Cake\Collection\Collection

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Folder & File

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Hash

class Cake\Utility\Hash

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Http Client

class Cake\Network\Http\Client(mixed $config = [])

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Inflector

class Cake\Utility\Inflector

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Number

class Cake\I18n\Number

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Registry Objects

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Text

class Cake\Utility\Text

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Time

class Cake\I18n\Time

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Xml

class Cake\Utility\Xml

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Constants & Functions

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Debug Kit

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Migrations

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Appendices

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

3.x Migration Guide

3.x Migration Guide

General Information

CakePHP Development Process

Glossary

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.x Migration Guide

Migration guides contain information regarding the new features introduced in each version and the migration path between versions.

3.5 Migration Guide

3.5 Migration Guide

3.4 Migration Guide

3.4 Migration Guide

3.3 Migration Guide

3.3 Migration Guide

3.2 Migration Guide

3.2 Migration Guide

3.1 Migration Guide

3.1 Migration Guide

3.0 Migration Guide

3.0 Migration Guide

New ORM Upgrade Guide

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.5 Migration Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.4 Migration Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.3 Migration Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.2 Migration Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

3.1 Migration Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

New ORM Upgrade Guide

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

CakePHP Development Process

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Glossary

routing array

An array of attributes that are passed to Router::url(). They typically look like:

['controller' => 'Posts', 'action' => 'view', 5]

HTML attributes

An array of key => values that are composed into HTML attributes. For example:

// Given
['class' => 'my-class', 'target' => '_blank']

// Would generate
class="my-class" target="_blank"

If an option can be minimized or accepts its name as the value, then true can be used:

// Given
['checked' => true]

// Would generate
checked="checked"

eklenti sözdizimi

Plugin syntax refers to the dot separated class name indicating classes are part of a plugin:

// The plugin is "DebugKit", and the class name is "Toolbar".
'DebugKit.Toolbar'

// The plugin is "AcmeCorp/Tools", and the class name is "Toolbar".
'AcmeCorp/Tools.Toolbar'

dot notation

Dot notation defines an array path, by separating nested levels with . For example:

Cache.default.engine

Would point to the following value:

[
    'Cache' => [
        'default' => [
            'engine' => 'File'
        ]
    ]
]

CSRF

Cross Site Request Forgery. Prevents replay attacks, double submissions and forged requests from other domains.

CDN

Content Delivery Network. A 3rd party vendor you can pay to help distribute your content to data centers around the world. This helps put your static assets closer to geographically distributed users.

routes.php

A file in config directory that contains routing configuration. This file is included before each request is processed. It should connect all the routes your application needs so requests can be routed to the correct controller + action.

DRY

Don’t repeat yourself. Is a principle of software development aimed at reducing repetition of information of all kinds. In CakePHP DRY is used to allow you to code things once and re-use them across your application.

PaaS

Platform as a Service. Platform as a Service providers will provide cloud based hosting, database and caching resources. Some popular providers include Heroku, EngineYard and PagodaBox

DSN

Data Source Name. A connection string format that is formed like a URI. CakePHP supports DSN’s for Cache, Database, Log and Email connections.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

PHP Namespace Index

c

| c |
- | Cake |
|     Cake\Cache |
|     Cake\Collection |
|     Cake\Console |
|     Cake\Controller |
|     Cake\Controller\Component |
|     Cake\Core |
|     Cake\Database\Schema |
|     Cake\Filesystem |
|     Cake\Form |
|     Cake\I18n |
|     Cake\Mailer |
|     Cake\Network |
|     Cake\Network\Http |
|     Cake\ORM |
|     Cake\ORM\Behavior |
|     Cake\Routing |
|     Cake\Utility |
|     Cake\Validation |
|     Cake\View |
|     Cake\View\Helper |

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Not Found

The page you’re looking for cannot be found. Try using the search bar to find what you’re looking for.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Chronos

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

İçindekiler

Preface

CakePHP at a Glance

Additional Reading

Where to Get Help

CakePHP Conventions

CakePHP Folder Structure

Hızlı Başlangıç Rehberi

Yerimi Eğitimi

CakePHP Başlarken

Yüklememizi inceleyelim

Veritabanını oluşturalım

Veritabanı Yapılandırması

İskele Yapımızı Oluşturalım

Parola Karıştırma Ekleme (Hashing)

Yerimlerini Özel Taglar ile getirelim

Bookmarker Tutorial Part 2

3.x Migration Guide

3.5 Migration Guide

3.5 Migration Guide

3.4 Migration Guide

3.4 Migration Guide

3.3 Migration Guide

3.3 Migration Guide

3.2 Migration Guide

3.2 Migration Guide

3.1 Migration Guide

3.1 Migration Guide

3.0 Migration Guide

3.0 Migration Guide

New ORM Upgrade Guide

Tutorials & Examples

Yerimi Eğitimi

CakePHP Başlarken

Yüklememizi inceleyelim

Veritabanını oluşturalım

Veritabanı Yapılandırması

İskele Yapımızı Oluşturalım

Parola Karıştırma Ekleme (Hashing)

Yerimlerini Özel Taglar ile getirelim

Bookmarker Tutorial Part 2

Blog Tutorial

Blog Tutorial - Part 2

Blog Tutorial - Part 3

Blog Tutorial - Authentication and Authorization

Contributing

Documentation

Tickets

Code

Coding Standards

Backwards Compatibility Guide

Getting Started

Kurulum

Gereksinimler

CakePHP’yi kurmak

Son CakePHP Değişiklikleri ile Güncel Kalmak

İzinler

Geliştirme Sunucusu

Canlı sistem

Fire It Up

URL Rewriting

Apache

nginx

IIS7 (Windows hosts)

I Can’t Use URL Rewriting

Configuration

Routing

Dispatcher Filters

Request & Response Objects

Request

Middleware

Controllers

More on Controllers

The Pages Controller

Components

Views

More About Views

View Cells

Themes

JSON and XML views

Helpers

Database Access & ORM

More Information

Database Basics

Query Builder

Table Objects

Entities

Retrieving Data & Results Sets

Validating Data

Saving Data

Deleting Data

Associations - Linking Tables Together

Behaviors

Schema System

ORM Cache Shell

Using CakePHP

Authentication

Bake Console

Code Generation with Bake

Extending Bake

Caching

Konsol ve Kabuklar

CakePHP Konsolu

Bir Kabuk Yaratmak

Kabuklarınızda Model Kullanmak

Kabuk Görevleri

Görevleri TaskRegistry İle Anında Yüklemek

Kabuğunuzdan Başka Kabukları Çağırmak

Kullanıcı Girdisi Almak

Dosya Yaratmak

Konsol Çıktısı

Konsol Çıktı Seviyeleri

Çıktıyı Şekillendirmek

Renklendirmeyi Kapatmak

Kanca metodları

Seçenekleri Yapılandırmak ve Yardım Üretmek

Akıcı Arayüz ile Bir Seçenek Ayrıştırıcıyı Yapılandırmak

Argümanları Eklemek

Argümanları Doğrulamak

Seçenekleri Eklemek

Seçenekleri Doğrulamak

Boole Seçenekler Eklemek

Altkomutları Eklemek

Bir Diziden ConsoleOptionParser Oluşturmak

ConsoleOptionParsers (KonsolSeçenekAyrıştırıcıları) Birleştirmek

Kabuklardan Yardım Almak

XML Olarak Yardım Almak

Kabuklarda Yönlendirme / CLI (KSA)

Diğer Konular

Shell Helpers

Interactive Console (REPL)

Running Shells as Cron Jobs

I18N Shell

Completion Shell

Plugin Shell

Routes Shell

Upgrade Shell

Server Shell

Cache Shell

Debugging

Deployment

Email

Error & Exception Handling

Events System

Additional Reading

Internationalization & Localization

Logging

Modelless Forms

Pagination

Plugins

REST

Security

Security

Cross Site Request Forgery

Security

Sessions

Testing

Validation

Utility Classes

App Class

Collections

Folder & File

Hash

Http Client

Inflector

Number

Registry Objects

Text

Time

Xml

Plugins

Chronos

Debug Kit

Migrations

ElasticSearch

Upgrade Tool

Other

Constants & Functions

Appendices

3.x Migration Guide

3.x Migration Guide

General Information

CakePHP Development Process

Glossary

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

ElasticSearch

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Hoşgeldiniz

CakePHP Yemekkitabı açık kaynaklı geliştirilen ve toplulukça düzenlenebilen dokümantasyon projesidir. Sağ üst köşede gördüğünüz “Improve this Doc” butonu sizi aktif sayfa üzerinde, eklemeler, silmeler ve düzeltmeler yapabilmeniz için Gihub çevrimiçi düzenleyicisine yönlendirecektir.

Kitabı heryerde okumak için

Hemen hemen her yerde CakePHP yemekkitabının keyfini çıkarın. Birden fazla cihazda, hem de çevrimdışı olarak okuyabilmeniz için PDF ve EPUB olarak da mevcuttur.

PDF

EPUB

Orijinal Kaynak [http://github.com/cakephp/docs]

Yardım almak

Bir konuda takıldıysanız, yardım alabaileceğiniz bir çok yer mevcuttur.

İlk adımlar

Yeni bir framework (uygulama çatısı) öğrenmek hem korkutucu hem de heyecan verici olabilir. Size yardımcı olmak için tariflerle ve örneklerle dolu bir yemek kitabı oluşturduk. Frameworkler konusunda yeniyseniz işe size CakePHP’nin ne sunduğu ve nasıl çalıştığı ile ilgili bilgi verecek olan Hızlı Başlangıç Rehberi ile başlayın.

Yer imi öğreticisini (Bookmarker Tutorial) bitirdikten sonra bir CakePHP uygulamasının temel bileşenlerine girişebilirsiniz.

CakePHP isteği döngüsü

CakePHP’nin kullandığı Yazım Kuralları.

Uygulamanızın yarattığı modelleri ve cevapları koordine eden ve cevapları işleyen Denetçiler.

Görünümler uygulamanızdaki sunum katmanıdır. Görünümler size uygulamanızın HTML, Json veya farklı şekillerde çıktı üretmek için ihtiyaç duyduğu güçlü araçları sunarlar.

Modeller uygulamanızın en önemli bileşenidir. Modeller doğrulamadan, ve veri işleme mantığından sorumludurlar.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Contents

CakePHP at a Glance

Additional Reading

Hızlı Başlangıç Rehberi

Yerimi Eğitimi

Bookmarker Tutorial Part 2

3.0 Migration Guide

Tutorials & Examples

Yerimi Eğitimi

Bookmarker Tutorial Part 2

Blog Tutorial

Blog Tutorial - Part 2

Blog Tutorial - Part 3

Blog Tutorial - Authentication and Authorization

Contributing

Documentation

Tickets

Code

Coding Standards

Backwards Compatibility Guide

Kurulum

Gereksinimler

CakePHP’yi kurmak

İzinler

Geliştirme Sunucusu

Canlı sistem

Fire It Up

URL Rewriting

Configuration

Routing

Dispatcher Filters

Request & Response Objects

Request

Controllers

More on Controllers

Views

More About Views

Database Access & ORM

More Information

Authentication

Bake Console

Code Generation with Bake

Extending Bake

Caching

Konsol ve Kabuklar

CakePHP Konsolu

Bir Kabuk Yaratmak

Kabuk Görevleri

Kabuğunuzdan Başka Kabukları Çağırmak

Kullanıcı Girdisi Almak

Dosya Yaratmak

Konsol Çıktısı

Kanca metodları

Seçenekleri Yapılandırmak ve Yardım Üretmek

Kabuklarda Yönlendirme / CLI (KSA)

Diğer Konular

Debugging

Deployment

Email

Error & Exception Handling

Events System

Additional Reading

Internationalization & Localization

Logging

Modelless Forms

Pagination

Plugins

REST

Security

Security

Cross Site Request Forgery

Security

Sessions

Testing

Validation

App Class

Collections

Folder & File

Hash

Http Client

Inflector

Number

Registry Objects

Text

Time

Xml

Constants & Functions

Debug Kit

Migrations

Appendices

3.x Migration Guide

General Information

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

CakePHP Nasıl Kullanılır?

CakePHP’nin en öenmli kısımlarına giriş yapalım:

Kurulum

Configuration

Routing

Request & Response Objects

Controllers

Components

The Pages Controller

Views

View Cells

Helpers

JSON and XML views

Database Access & ORM

Table Objects

Query Builder

Entities

Error & Exception Handling

Caching

Logging

Sessions

REST

Authentication

Pagination

Cross Site Request Forgery

Email

Form

Html

Validation

Testing

Deployment

Konsol ve Kabuklar

Contributing

Tutorials & Examples

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Upgrade Tool

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.

Middleware

Not

Bu belge şu anda bu sayfa için Türkçe dilinde desteklenmemektedir.

Yapmak istediğiniz değişiklikleri göndermek için, Github üzerinden istek yollayın ya da bu sayfanın üzerinde bulunan “Improve This Doc” butonuna tıklamaktan lütfen çekinmeyin.

Bu sayfanın konusu hakkındaki İngilizce kaynağa erişmek için üst taraftaki seçim menüsünü kullanabilirsiniz.

© Copyright 2021, Cake Software Foundation, Inc. Son güncelleme: Nis 09, 2021. Sphinx 2.4.4 ile oluşturulmuştur.