Skip to content

Instantly share code, notes, and snippets.

@umutyerebakmaz
Created May 1, 2025 19:55
Show Gist options
  • Save umutyerebakmaz/d68af740d2f7b18291c5182ee65cfb3c to your computer and use it in GitHub Desktop.
Save umutyerebakmaz/d68af740d2f7b18291c5182ee65cfb3c to your computer and use it in GitHub Desktop.
example for beginners
<?php
use App\Http\Controllers\BankAccountController;
use App\Http\Controllers\BlogController;
use App\Http\Controllers\CargoCompanyController;
use App\Http\Controllers\ContactController;
use App\Http\Controllers\DiscountController;
use App\Http\Controllers\FrequentlyAskedQuestionController;
use App\Http\Controllers\MailDesignController;
use App\Http\Controllers\PaymentRequestController;
use App\Http\Controllers\ProductStockReservationController;
use App\Http\Controllers\ShoppingSessionController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ProductController;
use App\Http\Controllers\InsectController;
use App\Http\Controllers\PackTypeController;
use App\Http\Controllers\UsageAreaController;
use App\Http\Controllers\CommentController;
use App\Http\Controllers\PageController;
use App\Http\Controllers\BrandController;
use App\Http\Controllers\UserAddressController;
use App\Http\Controllers\PaymentController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ShoppingCartController;
use App\Http\Controllers\OrderDetailController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
require __DIR__ . '/auth.php';
/*
|--------------------------------------------------------------------------
| 🔐 Auth + 🛠️ Admin Panel Routes
|--------------------------------------------------------------------------
| Yönetici kullanıcılar için erişilebilen panel rotalarıdır.
| `auth` + `administration` middleware'leri uygulanır.
| Route isimleri `administration.` prefix'i ile başlar.
*/
Route::group(['middleware' => ['auth', 'administration']], static function () {
Route::group(['as' => 'administration.', 'prefix' => 'administration'], static function ($router) {
// 🏷️ Marka Yönetimi
$router->resource('brands', BrandController::class)->except('show');
// 🚚 Kargo Firmaları
$router->resource('cargo-companies', CargoCompanyController::class)->except('show');
// 👤 Kullanıcılar
$router->resource('users', UserController::class)->except('show');
// 📦 Ürünler
$router->resource('products', ProductController::class)->except('show');
// 🐜 Zararlılar
$router->resource('insects', InsectController::class)->except('show');
// 📦 Ambalaj Tipleri
$router->resource('pack-types', PackTypeController::class)->except('show');
// 🧪 Kullanım Alanları
$router->resource('usage-areas', UsageAreaController::class)->except('show');
// 🎁 İndirimler
$router->resource('discounts', DiscountController::class)->except('show');
// 🧾 Siparişler
$router->get('order-details/{order_detail}/edit', [OrderDetailController::class, 'edit'])->name('order-details.edit')->withTrashed();
$router->put('order-details/{order_detail}', [OrderDetailController::class, 'update'])->name('order-details.update')->withTrashed();
$router->delete('order-details/{order_detail}', [OrderDetailController::class, 'destroy'])->name('order-details.delete')->withTrashed();
$router->resource('order-details', OrderDetailController::class)->except(['edit', 'update', 'delete']);
// 🏦 Banka Hesapları
$router->resource('bank-accounts', BankAccountController::class)->except('show');
// 📝 Bloglar
$router->resource('blogs', BlogController::class)->except('show');
// ❓ SSS
$router->resource('faqs', FrequentlyAskedQuestionController::class);
// 💳 Ödeme Hareketleri
$router->resource('payment-requests', PaymentRequestController::class)->only(['index', 'show', 'destroy']);
$router->delete('payment-requests/pending/clear', [PaymentRequestController::class, 'clearPending'])->name('payment-requests.clear-pending');
// 🛒 Alisveris Oturumlari
$router->resource('shopping-sessions', ShoppingSessionController::class)->only(['index', 'show', 'destroy']);
// 🛒 Produdct Stock Reservations
$router->resource('product-stock-reservations', ProductStockReservationController::class)->only(['index', 'show', 'destroy']);
});
});
/*
|--------------------------------------------------------------------------
| 👤 Authenticated User Routes
|--------------------------------------------------------------------------
| Giriş yapmış kullanıcılar için geçerlidir.
| Kullanıcı profili, sepet, siparişler ve adres yönetimi burada yapılır.
*/
Route::group(['middleware' => ['auth']], static function ($router) {
// 💬 Yorum
$router->post('comment/store', [CommentController::class, 'store'])->name('comment.store');
// 🏠 Adresler
$router->get('adresler', [UserAddressController::class, 'index'])->name('addresses.index');
$router->get('adresler/teslimat/create', [UserAddressController::class, 'createDelivery'])->name('addresses.delivery.create');
$router->post('adresler/teslimat/store', [UserAddressController::class, 'storeDelivery'])->name('addresses.delivery.store');
$router->get('adresler/fatura/create', [UserAddressController::class, 'createBilling'])->name('addresses.billing.create');
$router->post('adresler/fatura/store', [UserAddressController::class, 'storeBilling'])->name('addresses.billing.store');
$router->get('adresler/{userAddress}', [UserAddressController::class, 'show'])->name('addresses.show');
$router->get('adresler/{userAddress}/edit', [UserAddressController::class, 'edit'])->name('addresses.edit');
$router->put('adresler/{userAddress}', [UserAddressController::class, 'update'])->name('addresses.update');
$router->put('adresler/delivery/{userAddress}/{redirect}', [UserAddressController::class, 'updateCurrentDelivery'])->name('addresses.current-delivery.update');
$router->put('adresler/billing/{userAddress}/{redirect}', [UserAddressController::class, 'updateCurrentBilling'])->name('addresses.current-billing.update');
$router->delete('adresler/{userAddress}/{redirectDelete}', [UserAddressController::class, 'destroy'])->name('addresses.destroy');
// 💳 Checkout
$router->get('checkout', [PaymentController::class, 'checkout'])->name('checkout');
// 🧾 Siparişler
$router->get('siparis/{order_detail}/ozet', [OrderDetailController::class, 'orderSummary'])->name('order.summary');
$router->get('siparis/{order_detail}', [OrderDetailController::class, 'order'])->name('order');
// 🛒 Sepet
$router->get('sepetim', [ShoppingCartController::class, 'sepetim'])->name('sepetim')->withoutMiddleware('throttle');
$router->post('sepetim/add', [ShoppingCartController::class, 'add'])->name('shopping-cart.add')->withoutMiddleware('throttle');
$router->post('sepetim/remove', [ShoppingCartController::class, 'remove'])->name('shopping-cart.remove')->withoutMiddleware('throttle');
$router->post('sepetim/remove-product', [ShoppingCartController::class, 'removeProduct'])->name('shopping-cart.product.destroy')->withoutMiddleware('throttle');
$router->post('sepetim/clear', [ShoppingCartController::class, 'clear'])->name('shopping-cart.clear')->withoutMiddleware('throttle');
// 👤 Hesabım
$router->get('hesabim', [ProfileController::class, 'account'])->name('profile.account');
$router->get('uyelik-bilgilerim', [ProfileController::class, 'information'])->name('profile.information');
$router->put('uyelik-bilgilerim/{user}', [ProfileController::class, 'updateInformation'])->name('profile.information.update');
$router->put('iletisim-bilgilerim/{user}', [ProfileController::class, 'updateContact'])->name('profile.contact.update');
$router->get('siparislerim', [ProfileController::class, 'siparislerim'])->name('profile.orders');
$router->delete('siparislerim/{order_detail}', [OrderDetailController::class, 'deleteMyOrder'])->name('profile.order.destroy');
$router->get('yorumlarim', [ProfileController::class, 'comments'])->name('profile.comments');
$router->delete('yorumlarim/{comment}', [ProfileController::class, 'destroyMyComment'])->name('profile.comments.destroy');
$router->get('sifremi-degistir', [ProfileController::class, 'changePassword'])->name('profile.change-password');
$router->post('sifremi-degistir', [ProfileController::class, 'storeChangePassword'])->name('profile.change-password.store');
$router->get('iletisim-tercihlerim', [ProfileController::class, 'communicationPreferences'])->name('profile.communication-preferences');
$router->post('iletisim-tercihlerim', [ProfileController::class, 'storeCommunicationPreferences'])->name('profile.communication-preferences.store');
$router->get('adreslerim', [ProfileController::class, 'addresses'])->name('profile.addresses');
$router->post('users/{user}/send-verification', [UserController::class, 'sendVerificationEmail'])->name('users.send-verification');
});
/*
|--------------------------------------------------------------------------
| 🌐 Public Routes
|--------------------------------------------------------------------------
| Giriş gerektirmeyen genel sayfalardır. (SEO + tanıtım + ödeme sonucu)
| Ziyaretçiler ve kullanıcılar tarafından erişilebilir.
*/
Route::group([], static function ($router) {
// 💳 Ödeme Callback
$router->post('payment/callback', [PaymentController::class, 'callback'])->name('payment.callback');
// 📄 Kurumsal Sayfalar
$router->get('hakkimizda', [PageController::class, 'hakkimizda'])->name('hakkimizda');
$router->get('gizlilik-ve-guvenlik-politikasi', [PageController::class, 'gizlilik'])->name('gizlilik-ve-guvenlik-politikasi');
$router->get('iptal-ve-iade-kosullari', [PageController::class, 'iptalKosullari'])->name('iptal-ve-iade-kosullari');
$router->get('mesafeli-satis-sozlesmesi', [PageController::class, 'mesafeliSatisSozlesmesi'])->name('mesafeli-satis-sozlesmesi');
$router->get('internet-sitesi-cerezleri-ve-beyani', [PageController::class, 'cerezPolitikasi'])->name('internet-sitesi-cerezleri-ve-beyani');
// 📝 Blog
$router->get('blogs', [BlogController::class, 'blogs'])->name('blogs');
$router->get('blogs/{blog:slug}', [BlogController::class, 'show'])->name('blogs.show');
// 🏦 Banka Hesapları
$router->get('banka-hesaplarimiz', [BankAccountController::class, 'show'])->name('bank-accounts.show');
// ❓ Sıkça Sorulan Sorular
$router->get('sikca-sorulan-sorular', [FrequentlyAskedQuestionController::class, 'faqs'])->name('faqs');
// 📬 İletişim Formu
$router->get('bize-ulasin', [ContactController::class, 'contact'])->name('contact');
$router->middleware('throttle:perMinute3')->post('iletisim', [ContactController::class, 'storeContact'])->name('contact.store');
// 💌 Mail Design Routes (Geliştirme amaçlı)
$router->get('mail/design/your-order-has-been-confirmed', [MailDesignController::class, 'YourOrderHasBeenConrfirmedDesign']);
$router->get('mail/send/your-order-has-been-confirmed', [MailDesignController::class, 'YourOrderHasBeenConrfirmedSend']);
$router->get('mail/design/your-order-has-been-shipped', [MailDesignController::class, 'YourOrderHasBeenShippedDesign']);
$router->get('mail/send/your-order-has-been-shipped', [MailDesignController::class, 'YourOrderHasBeenShippedSend']);
$router->get('mail/design/new-order-received', [MailDesignController::class, 'NewOrderReceivedDesign']);
$router->get('mail/send/new-order-received', [MailDesignController::class, 'NewOrderReceivedSend']);
$router->get('mail/design/contact-form', [MailDesignController::class, 'ContactFormDesign']);
// 🛍️ Ürün ve Kategori Sayfaları
$router->get('/', [PageController::class, 'home'])->name('home');
$router->get('ilac-markalari/{brand:slug}', [ProductController::class, 'biocidalBrands'])->name('biocidal-brands');
$router->get('hasere-ilaclari/{insect:slug}', [ProductController::class, 'insectBiocidals'])->name('insect-biocidals');
$router->get('vektor-kontrol-zararlilari', [InsectController::class, 'insects'])->name('vektor-kontrol-zararlilari');
$router->get('vektor-kontrol-zararlilari/{insect:slug}', [InsectController::class, 'insect'])->name('insect');
// 🧪 Ürün Detayı (slug dikkat: en sonda kalmalı!)
$router->get('{product:slug}', [ProductController::class, 'product'])->name('product');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment