auzefSunucu Tabanlı ProgramlamaWeb Tasarım Ve Kodlama

Sunucu Tabanlı Programlama Ünite -7

Tasarım Katmanı

 

#1. Laravel’de Blade bileşenlerinin (.blade.php) zorunlu olarak bulunması gereken klasör hangisidir?

Cevap : D) resources/views

Açıklama : Blade bileşenleri resources/views/ klasöründe bulunur ve buradan çağrılır.

#2. @foreach döngüsünde $loop değişkeninin hangi özelliği yanlış eşleştirilmiştir?

Cevap : E) index – İterasyonun sırası (1’den başlar)

Açıklama : Blade’de $loop->index 0’dan başlar, ancak $loop->iteration 1’den başlar. Yani $loop->index kullanıldığında sıfır tabanlı bir indeks döner.

#3. Laravel’de form güvenliği için kullanılan CSRF token’ı hangi amaçla kullanılır?

Cevap : A) Formun gerçek kaynaktan geldiğini doğrulamak için

Açıklama : CSRF (Cross-Site Request Forgery) tokeni, bir formun gerçek bir kullanıcıdan ve yetkili bir kaynaktan geldiğini doğrulamak için kullanılır. Laravel’de formlara otomatik olarak CSRF koruması eklenir.

Örnek Kullanım:

<form method="POST" action="/gonder">
@csrf
<input type="text" name="isim">
<button type="submit">Gönder</button>
</form>

#4. Kontrolcüden görünüme veri gönderirken aşağıdaki yöntemlerden hangisi kullanılamaz?

Cevap : A) session() fonksiyonu

Açıklama : session() fonksiyonu genellikle flash mesajlar ve oturum verileri için kullanılır, ancak kontrolcüden doğrudan görünüme veri göndermek için kullanılmaz.

#5. @unless direktifi ne zaman kullanılır?

Cevap : C) Koşul yanlış olduğunda çalışacak kodlar için

Açıklama : Blade’de @unless direktifi, if koşulunun tersidir ve koşul yanlış olduğunda kodu çalıştırır.
Örnek Kullanım:

<pre><code>@unless(Auth::check())
<p>Giriş yapmalısınız!</p>
@endunless</code></pre>

Burada, kullanıcı giriş yapmamışsa mesaj gösterilir.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

#6. Blade tasarım motorunda HTML içindeki PHP kodları için aşağıdaki söz dizimlerinden hangisi XSS saldırılarına karşı otomatik koruma sağlar?

Cevap : E) {{ $degisken }}

Açıklama : Blade şablon motorunda {{ $degisken }} sözdizimi, değişkenin içeriğini HTML özel karakterlerinden arındırarak ekrana basar ve XSS saldırılarına karşı otomatik koruma sağlar. Eğer değişkenin içeriği doğrudan HTML olarak gösterilmek isteniyorsa, {!! $degisken !!} kullanılabilir, ancak bu XSS saldırılarına açık hale getirebilir.

#7. Layout kullanımında @yield direktifinin amacı nedir?

Cevap : D) İçerik bölümünü tanımlamak

Açıklama :
Blade’de @yield direktifi, ana şablon içinde değişken içeriğin geleceği alanı belirtmek için kullanılır.
Örnek Kullanım:

<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
@yield('content')
</body>
</html>

Bu kod, alt şablonlardan @section('content') ile içerik eklenmesini sağlar.

#8. Blade şablonlarında yorum satırı eklemenin HTML yorumlarından farkı nedir?

Cevap : C) Blade yorumları kaynak kodda görünmez

Açıklama : Blade şablonlarında {{-- Yorum Satırı --}} şeklinde yazılan yorumlar, tarayıcıya gönderilmez ve kaynak kodda görünmez. Ancak HTML yorumları (<!-- Yorum -->) sayfa kaynak kodunda görülebilir.

#9. Blade şablonlarında @stack ve @push direktifleri ne amaçla kullanılır?

Cevap : B) CSS ve JavaScript kaynaklarını yönetmek için

Açıklama : @stack ve @push direktifleri, sayfanın belirli bir yerinde CSS veya JavaScript eklemek için kullanılır.

Örnek Kullanım:

@push('scripts')
<script src="script.js"></script>
@endpush

Bu kod, layout içinde @stack('scripts') çağrıldığında eklenir.

#10. Laravel’de tasarım dosyaları için aşağıdaki klasör yapılarından hangisi yanlıştır?

Cevap : B) database/ – Görünüm dosyaları için

Açıklama :
Laravel’de tasarım dosyaları resources/views/ içinde bulunur. database/ klasörü görünümler için değil, veritabanı ile ilgili dosyalar için kullanılır.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

Öncesi
TESTi BiTiR, PUANINI GÖR

SONUÇ

İstanbul Üniversitesi Açık ve Uzaktan Eğitim Fakültesi (Auzef)
Açık Öğretim Fakültesi
Bölüm : Web Tasarımı ve Kodlama
2. Sınıf Bahar Dönemi
Sunucu Tabanlı Programlama Ünite -7
Tasarım Katmanı

İstanbul Üniversitesi Açık ve Uzaktan Eğitim Fakültesi (Auzef)
Açık Öğretim Fakültesi
Bölüm : Web Tasarımı ve Kodlama
2. Sınıf Bahar Dönemi
Sunucu Tabanlı Programlama Ünite -7
Tasarım Katmanı

Tasarım Katmanı

İstanbul Üniversitesi Açık ve Uzaktan Eğitim Fakültesi (Auzef)
Açık Öğretim Fakültesi
Bölüm : Web Tasarımı ve Kodlama
2. Sınıf Bahar Dönemi
Sunucu Tabanlı Programlama Ünite -7
Tasarım Katmanı

Tasarım Katmanı

Tasarım Katmanı: Laravel’de Blade Şablon Yönetimi

Web uygulamalarında tasarım katmanı, kullanıcı arayüzünün oluşturulmasını sağlayan en önemli bileşenlerden biridir. Laravel, tasarım yönetimi için Blade şablon motorunu kullanarak hem dinamik içerik yönetimini kolaylaştırır hem de güvenlik açıklarını minimize eder. Bu makalede, Blade şablon yönetimi, veri güvenliği ve en iyi kullanım yöntemleri ele alınacaktır.

Blade ve XSS Koruması

Web güvenliğinde en kritik noktalardan biri, XSS (Cross-Site Scripting) saldırılarıdır. Laravel’in Blade şablon motoru, bu saldırılara karşı otomatik olarak koruma sağlar.

<p>{{ $degisken }}</p>

Yukarıdaki kod, değişken içeriğini HTML özel karakterlerinden arındırarak ekrana basar. Eğer değişken içeriğinin doğrudan HTML olarak eklenmesi istenirse şu yöntem kullanılır:

<p>{!! $degisken !!}</p>

Ancak bu yöntem XSS saldırılarına açık hale gelebilir. Bu yüzden yalnızca güvenilir HTML içeriği işlenirken kullanılmalıdır.

Form Güvenliği ve CSRF Koruması

Laravel, CSRF (Cross-Site Request Forgery) saldırılarına karşı koruma sağlamak için otomatik olarak CSRF token’ları kullanır. Bu sayede, formun yetkili bir kullanıcı tarafından gönderildiği doğrulanır.

<form method="POST" action="/gonder">
    @csrf
    <input type="text" name="isim">
    <button type="submit">Gönder</button>
</form>

Bu yapı, form gönderimi sırasında otomatik olarak bir güvenlik tokeni ekler ve doğrulamayı gerçekleştirir.

Blade Yorumları ve Kaynak Kod Yönetimi

Laravel’de yorum satırları Blade şablonlarında şu şekilde eklenir:

{{-- Bu bir Blade yorumudur --}}

Blade yorumları HTML kaynak koduna dahil edilmez, bu yüzden tarayıcıda görünmez. Ancak HTML yorumları (<!-- ... -->) sayfanın kaynak kodunda görülebilir.

Blade Dosya Yapısı ve Layout Kullanımı

Laravel’de tüm Blade şablonları resources/views/ dizininde saklanır. Layout yapısı, sayfaların tekrarlayan bölümlerini düzenlemek için kullanılır.

Ana şablon:

<!DOCTYPE html>
<html>
<head>
    <title>@yield('title')</title>
</head>
<body>
    @yield('content')
</body>
</html>

Alt şablonlarda içerik eklemek için:

@extends('layout')
@section('title', 'Ana Sayfa')
@section('content')
    <p>Merhaba, Laravel!</p>
@endsection

Bu yapı, @yield ve @section kullanarak sayfanın farklı bölümlerini yönetmeyi sağlar.

Döngüler ve Blade Direktifleri

Blade, PHP kodlarını HTML içinde daha temiz ve okunabilir hale getirmek için özel direktifler sunar. @foreach döngüsü, verileri listelemek için sıkça kullanılır.

@foreach($users as $user)
    <p>{{ $user->name }}</p>
@endforeach

Blade ayrıca döngü içinde $loop değişkenini sağlar. Örneğin, bir döngünün ilk veya son elemanını kontrol etmek için:

@foreach($users as $user)
    @if($loop->first)
        <p>İlk Kullanıcı: {{ $user->name }}</p>
    @endif
@endforeach

Koşullu İfadeler ve @unless Direktifi

Laravel’de @unless, if koşulunun tersidir ve koşul yanlış olduğunda kodu çalıştırır.

@unless(Auth::check())
    <p>Giriş yapmalısınız!</p>
@endunless

Eğer kullanıcı giriş yapmamışsa, yukarıdaki mesaj gösterilecektir.

CSS ve JavaScript Yönetimi (@stack ve @push)

Laravel’de CSS ve JavaScript dosyalarını sayfanın belirli bölümlerine eklemek için @stack ve @push kullanılır.

Ana layout dosyası:

<head>
    @stack('styles')
</head>

Alt sayfada CSS eklemek için:

@push('styles')
    <link rel="stylesheet" href="style.css">
@endpush

Bu yapı, dinamik kaynak yönetimi sağlar ve kod tekrarını önler.

Kontrolcüden Görünüme Veri Gönderme

Laravel’de kontrolcülerden Blade görünümlerine veri göndermek için farklı yöntemler kullanılabilir:

// 1. Direkt parametre olarak dizi gönderme
return view('users.index', ['users' => $users]);

// 2. Compact fonksiyonu kullanımı
return view('users.index', compact('users'));

// 3. With metodu kullanımı
return view('users.index')->with('users', $users);

Ancak session() fonksiyonu, kontrolcüden doğrudan veri göndermek için değil, oturum yönetimi için kullanılır.

Blade Bileşenleri ve Kullanımı

Laravel’de Blade bileşenleri, tekrar eden HTML yapılarını yönetmek için kullanılır. Blade bileşenleri resources/views/components/ dizininde saklanır ve çağrılır.

Örnek bileşen kullanımı:

<x-alert type="success" message="İşlem başarılı!" />

Sonuç

Laravel’in Blade şablon motoru, dinamik içerik yönetimini kolaylaştırırken güvenlik, esneklik ve performans açısından büyük avantajlar sunar. Layout kullanımı, döngüler, koşullu ifadeler, veri aktarımı ve güvenlik önlemleri sayesinde modern web uygulamalarının geliştirilmesi daha verimli hale gelir. Tasarım katmanının iyi yönetilmesi, kullanıcı deneyimini artırırken aynı zamanda kodun modüler ve sürdürülebilir olmasını sağlar.

@lolonolo_com

Sunucu Tabanlı Programlama Ünite -7

Tasarım Katmanı

Ünite 7: Tasarım Katmanı Ünite Soruları

1- Blade tasarım motorunda HTML içindeki PHP kodları için aşağıdaki söz dizimlerinden hangisi XSS saldırılarına karşı otomatik koruma sağlar?

A) {!! $degisken !!}
B) <?php echo $degisken ?>
C) <?= $degisken ?>
D) @php echo $degisken @endphp
E) {{ $degisken }}

Cevap : E) {{ $degisken }}

Açıklama : Blade şablon motorunda {{ $degisken }} sözdizimi, değişkenin içeriğini HTML özel karakterlerinden arındırarak ekrana basar ve XSS saldırılarına karşı otomatik koruma sağlar. Eğer değişkenin içeriği doğrudan HTML olarak gösterilmek isteniyorsa, {!! $degisken !!} kullanılabilir, ancak bu XSS saldırılarına açık hale getirebilir.

2- Laravel’de form güvenliği için kullanılan CSRF token’ı hangi amaçla kullanılır?

A) Formun gerçek kaynaktan geldiğini doğrulamak için
B) Formun görünümünü düzenlemek için
C) Veritabanı bağlantısını sağlamak için
D) Form verilerini şifrelemek için
E) Formu sadece yetkili kullanıcılara göstermek için

Cevap : A) Formun gerçek kaynaktan geldiğini doğrulamak için

Açıklama : CSRF (Cross-Site Request Forgery) tokeni, bir formun gerçek bir kullanıcıdan ve yetkili bir kaynaktan geldiğini doğrulamak için kullanılır. Laravel’de formlara otomatik olarak CSRF koruması eklenir.

Örnek Kullanım:

<form method="POST" action="/gonder">
@csrf
<input type="text" name="isim">
<button type="submit">Gönder</button>
</form>

3- Blade şablonlarında yorum satırı eklemenin HTML yorumlarından farkı nedir?

A) Blade yorumları daha hızlı çalışır
B) Blade yorumları veritabanına kaydedilir
C) Blade yorumları kaynak kodda görünmez
D) Blade yorumları daha fazla yer kaplar
E) Blade yorumları tarayıcıda görünür

Cevap : C) Blade yorumları kaynak kodda görünmez

Açıklama : Blade şablonlarında {{-- Yorum Satırı --}} şeklinde yazılan yorumlar, tarayıcıya gönderilmez ve kaynak kodda görünmez. Ancak HTML yorumları (<!-- Yorum -->) sayfa kaynak kodunda görülebilir.

4- Laravel’de tasarım dosyaları için aşağıdaki klasör yapılarından hangisi yanlıştır?

A) components/ – Yeniden kullanılabilir bileşenler için
B) database/ – Görünüm dosyaları için
C) layouts/ – Temel sayfa şablonları için
D) partials/ – Sayfa parçaları için
E) pages/ – Sayfa şablonları için

Cevap : B) database/ – Görünüm dosyaları için

Açıklama : Laravel’de tasarım dosyaları resources/views/ içinde bulunur. database/ klasörü görünümler için değil, veritabanı ile ilgili dosyalar için kullanılır.

5- @foreach döngüsünde $loop değişkeninin hangi özelliği yanlış eşleştirilmiştir?

A) first – İlk iterasyon kontrolü
B) count – Toplam iterasyon sayısı
C) last – Son iterasyon kontrolü
D) even – Çift sayılı iterasyon kontrolü
E) index – İterasyonun sırası (1’den başlar)

Cevap : E) index – İterasyonun sırası (1’den başlar)

Açıklama : Blade’de $loop->index 0’dan başlar, ancak $loop->iteration 1’den başlar. Yani $loop->index kullanıldığında sıfır tabanlı bir indeks döner.

6- Blade şablonlarında @stack ve @push direktifleri ne amaçla kullanılır?

A) Veritabanı işlemleri için
B) CSS ve JavaScript kaynaklarını yönetmek için
C) Form doğrulaması için
D) Kullanıcı yetkilendirmesi için
E) Verileri önbelleğe almak için

Cevap : B) CSS ve JavaScript kaynaklarını yönetmek için

Açıklama : @stack ve @push direktifleri, sayfanın belirli bir yerinde CSS veya JavaScript eklemek için kullanılır.

Örnek Kullanım:

@push('scripts')
<script src="script.js"></script>
@endpush

Bu kod, layout içinde @stack('scripts') çağrıldığında eklenir.

7- Kontrolcüden görünüme veri gönderirken aşağıdaki yöntemlerden hangisi kullanılamaz?

A) session() fonksiyonu
B) with() yöntemi
C) compact() fonksiyonu
D) İkinci parametre olarak dizi gönderme
E) $data değişkeni

Cevap : A) session() fonksiyonu

Açıklama : session() fonksiyonu genellikle flash mesajlar ve oturum verileri için kullanılır, ancak kontrolcüden doğrudan görünüme veri göndermek için kullanılmaz.

8- Laravel’de Blade bileşenlerinin (.blade.php) zorunlu olarak bulunması gereken klasör hangisidir?

A) public/views
B) app/views
C) storage/views
D) resources/views
E) config/views

Cevap : D) resources/views

Açıklama : Blade bileşenleri resources/views/ klasöründe bulunur ve buradan çağrılır.

9- @unless direktifi ne zaman kullanılır?

A) Her zaman çalıştırılması gereken kodlar için
B) Koşul doğru olduğunda çalışacak kodlar için
C) Koşul yanlış olduğunda çalışacak kodlar için
D) Döngü oluşturmak için
E) Form validasyonu için

Cevap : C) Koşul yanlış olduğunda çalışacak kodlar için

Açıklama : Blade’de @unless direktifi, if koşulunun tersidir ve koşul yanlış olduğunda kodu çalıştırır.
Örnek Kullanım:

<pre><code>@unless(Auth::check())
<p>Giriş yapmalısınız!</p>
@endunless</code></pre>

Burada, kullanıcı giriş yapmamışsa mesaj gösterilir.

10- Layout kullanımında @yield direktifinin amacı nedir?

A) Sayfayı yönlendirmek
B) Veri doğrulaması yapmak
C) Form oluşturmak
D) İçerik bölümünü tanımlamak
E) Veritabanı sorgusu çalıştırmak

Cevap : D) İçerik bölümünü tanımlamak

Açıklama :
Blade’de @yield direktifi, ana şablon içinde değişken içeriğin geleceği alanı belirtmek için kullanılır.
Örnek Kullanım:

<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
@yield('content')
</body>
</html>

Bu kod, alt şablonlardan @section('content') ile içerik eklenmesini sağlar.

@lolonolo_com

Web Tasarım ve Kodlama
Auzef Sunucu Tabanlı Programlama Web Tasarımı ve Kodlama

Auzef Web Tasarımı ve Kodlama 2. sınıf bahar dönemi soruları

Editor

Editör

error: Kopyalamaya Karşı Korumalıdır!