Giriş yapmadınız.

#1 Yanıt: Laravel 5.x Yardım » 5.8 password reset mail » Dün 08:21:23

Laravelin en saçma yanı,bir alt versiyonla 100 de 100 uyumluluğu garanti değil.
Beyimize (taylor otwell) bağlıyız.O ne derse.
Lanet olası elimizde de başka bir alternatif yok işte.:)

#2 Yanıt: Laravel 5.x Yardım » api den dönen tokan i config veya .env kaydetmek istiyorum » 14.06.2019 21:27:13

Hanifeoğlu o yazdığın provider içindeki kodun istediğin istemediğin her istekte çalıştığının farkındasın değil mi? Şu providerların mantığı ile ilgili türkçe kaynak yetersiz sanırım

#3 Yanıt: Laravel 5.x Yardım » Unit Test Nasıl Yapılır » 13.06.2019 08:17:47

Alihanın dediği kısmı şu an anlayamazsın.Seviyeni ilerlettikten sonra anlarsın o kısmı.
Laravelin tüm sınıf ve methodlarının ne iş yaptığını anlatan kısmı ancak php object oriented bilginizin geliştiği durumda anlayabilirsiniz.

#4 Yanıt: Laravel 5.x Yardım » Unit Test Nasıl Yapılır » 12.06.2019 09:00:08

Udemyden hiç video satın almadım hiç,ihtiyaç duymadığımdandır.
O yüzden şu kişinin videolarına bak diyebileceğim bir bilgiye sahip değilim.
Bana göre en etkili çözüm okumaktır.Videonun öğreticiliğine tabiki bir şey demem.Ama sonuçta para vererek satın alabileceğiniz bir şeyse,ben orda ahkam kesemem.Araştırın en iyisi hangisiyse onu satın alın izleyin.Tabiki katkı sunacaktır size.

#5 Yanıt: Laravel 5.x Yardım » Unit Test Nasıl Yapılır » 11.06.2019 22:43:53

uzman olmak kelimesi smile güldürdün beni.Öyle bir kelime yok @neri kardeşim.
Şu andan itibaren unut o kelimeyi.Kimse gelişen teknolojide ben uzman bir yazılımcıyım diyemez.
Lakaplarada karşıyım junior,senior neye göre kime göre.
İlla bir tanım istiyorsan senior - aradığını bulabilen ve sorunu daha çabuk çözebilen insandır.

Makale kısımlarına çok karısamam.Ben laraveli core'undan öğrendim sayılır.
Nasıl çalışıyor diye merak ettim icine girdim öyle öğrendim.Ha illa laravel de öğrenmek zorunda değilsiniz.Laravel php ile yazılmış bir framework.
Programlama dilinin konseptlerini öğrenin,object oriented tecrübenizi geliştirin.Yazılımış kodları inceleyin.Kendiniz harmanlama usulü bir şeyler yazın.


Birşeyi öğrenmek için en iyi yol onun dökümanlarını iyice okuyup uygulamaktır.
Yabancı dil bilmiyorum türkce kaynak olsa diye bir şey,baştan kaybettiğinizin belgesidir.
Olmaz yürümez.Ama şimdi artık öyle bir şey de kalmadı.Google translate baya geliştirdi kendini,eskiden çok kötü çeviriyordu.
Şimdi komple bir web sayfasını ingilizce bile gormeden direkt türkceye çevirip sana öyle gösteriyor.
Bahane olamaz yani.Araştırın öğrenin.Yaşınız nedir bilemem ama çok büyük devasa bir kaynak var önünüzde.Yapamayacağınız şey yok.

Patlayana kadar kod yazmak zorundasınız.
Başka türlü orta seviyenin üstüne çıkamazsınız.

İyi akşamlar.

#6 Yanıt: Laravel 5.x Yardım » laravel php 5.6 to 7.1 sorunu » 11.06.2019 22:36:52

dockeri bir kullansanız şu günlerinize lanet okuyacaksınız.appserv xampp wamp bunlar milattan önce kullanılıyordu

#7 Yanıt: Laravel 5.x Yardım » Unit Test Nasıl Yapılır » 11.06.2019 12:40:04

Test yazmak nedir?
Cevap; Kodun davranışını her an izleyebilmektir.

Büyük projelerde test yazmak kaçınılmaz bir gerçektir.Çünkü kod büyüdükçe kontrol edilebilmesi zayıflar ve bunu insan yerine makineye bırakmak zorunda kalırsın.işte makine senin yerine yazdığın tüm olasılıkları her an tespit eder ve sana hata varsa söyler.Travis etc.. gibi hizmetler yazdığın kodu belirlediğin her zaman diliminde yada her 5 dakikada bir senin yerine çalıştırırlar ve sana mail atarlar.

Test yazmak hayat kurtarır.

public function testIndex()
    {
        $this->assertTrue(true,request()->isFromTrustedProxy());
    }

böyle bir test yazdıgınızda.

vendor/bin/phpunit

ile çalıştırırsınız.ve size request methodu ile proxynin güvenilir olup olmadığını söyler sana.eğer güvenilir değilse hata basar.cunku condition olarak true bekliyor testimiz.

Bunun gibi 100 lerce 1000 lerce test..her olasılık her durum yazılmalı.
Evet test yazmak zordur ama yapabileceğiniz bir şey yok.Kurumlar bu zamanı developera mutlak ölçüde azami olarak verebilmeli.

Aksi durumda,bir geliştirme yaptığınızda kodunuzun hangi kısımları etkilenir diye kara kara düşünürsünüz.
Bir geliştirme yaptım ama her zaman doğru çalışır mı diye düşünürsünüz.

UnitTestler yazılmalı en basitinden.Yazmak zorundasın.Yazdıgın endpointe istek attır ve doğru değerler dönüyor mu diye testine bunları belirtmek zorundasın.

$content = $this->get('/users');

$this->assertSame(200,$content->status);

users endpointine istek atsın ve statusu 200 beklesin.Yaz bunu birde getle postla parametreler gönderttir farazi.
200 harici gelirse demek ki bir yerde bir sıkıntı var diye hata atsın sana...

sende gir belirtilen satıra kodunu refactor et.
-------

Neyse sürer gider,test yazmaya alışın.Test yazınca sevdiklerinize daha çok zaman ayırırsınız.

#9 Yanıt: Laravel 5.x Yardım » Laravel Yetki Sistemi ve Dil Sistemi Hakkında » 31.05.2019 10:50:48

Dil değiştirmek için setLocale işlemini uygulayınca oturum boyunca bu işlem geçerli olmuyor.

bütün heryerde geçerli olması için @mgsmusun kodunu appServiceProvider.php icinde yapabilirsiniz.Providerlar rotalarınızın tümünü kapsayacaktır.Route işlemi providerdan önce yüklendiği için segmenti yakalayabilirsiniz.

#10 Yanıt: Laravel 5.x Yardım » Laravel Yetki Sistemi ve Dil Sistemi Hakkında » 31.05.2019 10:43:18

çok geç kalmışsın @jettem sanki seni ceviz.netten tanıyorum nikin yabancı gelmedi hiç bana smile

#11 Yanıt: Laravel 5.x Yardım » Git İle Otomatik Yayına Geçme » 29.05.2019 17:04:42

Bunlar için çeşitli deployment araçları vardır.Basic olanı webhooktur.Bu bölümde tanımlayacağınız bir post urlsine,belirlediğiniz branch için push geldiğinde github yada benzeri firmalar post atar ve sizde bu belirlediğiniz post adresinde hayal edebildiğiniz herşeyi yapabilirsiniz.

Örneğin; https://symfony.com/doc/current/components/process.html

bu componenti kullanarak git komutu çalıştırabilirsiniz.

#12 Yanıt: Laravel 5.x Yardım » Bazı config ayarları » 29.05.2019 15:07:27

Göndermeme zorunluluğu yok.Biz göndermiyoruz ve eminim ki bir çok kişi de göndermeme taraftarı.Zaten laravelin ana dizinindeki .gitignore dosyasına bakarsanız versiyon kontrolle bile göndermiyor bu dosyayı uzak depoya.
Eğer prodda .env varsa.Bu dosyanın güvenliğini sağlamak zorundasınız.Düz bir text dosya bu,her türlü talep edildiğinde doğrudan browsera yollanır içeriği ve bütün prod ayarlarınız herkes tarafından okunur.

O yüzden bu local ortama ait olabilecek dosyayı prod ortamdan uzak tutuyoruz.Zaten dediğim gibi env("foo",false); env yardımcısınla kullanıldığı için varsa .env icinde ki foo yu al..yoksa 2.parametre olarak yazdıgımı al demek olan 2 parametreli bir yardımcı methodu bu yüzden kullanıyoruz.

Lütfen artık bu .env ile ilgili sorunlarınız kalmasın artık.Daha bir sürü öğrenecek konu var laravel bazında konuşursak.En temel şeyde bu kadar takılmayalım.
İyi çalışmalar.

#13 Yanıt: Laravel 5.x Yardım » Bazı config ayarları » 29.05.2019 14:06:08

Şöyle basitce anlatayım o zaman; mesela localinde mysql database username root olarak ayarlı.Yani localinde database kullanıcın root.
Ama gerçek ortamda yani bizim prod dediğimiz ortamda username fooBlabla...

local ortam da .env dosyası var...
Ama prod ortamda .env dosyası yok..

Gel şimdi local ortamda .env dosyasına..

DB_USERNAME=root

olarak yazacaksın...

dosya kayboldugunda..

config/database.php

mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),

//////////////////////////////////////////////////////////////////////////////////////////////
            //ikinci parametreye yazdıgın değer prodda geçerli olacak
            'username' => env('DB_USERNAME', 'fooBlabla'),

///////////////////////////////////////////////////////////////////////////////////////////////
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

Yani işin püf noktası şurası.Laravel senin .env dosyanla doğrudan ilgilenmez.
Sen env(...............)  yardımcısı kullandıgın icin bu dosyayla ilgileniyor..

Laravel her zaman ve her zaman ayar dizini olarak config dizini içine bakar.

sen burada

username = > fooBlabla 

şeklinde direkt bir stringde kullanabilirsin...böyle yazarsan username keyi icin .env dosyasının hiç bir önemi kalmayacaktır.
Zira az önce de dedim..senin .env dosyasınla irtibatın tamamıyla

env()  yardımcı methoduyla oluyor..başka türlü hiç bir alaka kurmaz laravel bu dosyayla ayarlarının....

Anlatabildim mi bilemiyorum...

#14 Yanıt: Laravel 5.x Yardım » Bazı config ayarları » 29.05.2019 09:54:13

evet

env('SESSION_LIFETIME', 120),

120 olacak...

http://forum.laravel.gen.tr/viewtopic.p … 678#p15678

lütfen tekrar okur musunuz? anlayamamışsınız sanırım olayı.

#15 Yanıt: Laravel 5.x Yardım » Doğru dosya indirme yöntemi » 22.05.2019 16:28:27

/**
     * Create a streamed response for a given file.
     *
     * @param  string  $path
     * @param  string|null  $name
     * @param  array|null  $headers
     * @param  string|null  $disposition
     * @return \Symfony\Component\HttpFoundation\StreamedResponse
     */
    public function response($path, $name = null, array $headers = [], $disposition = 'inline')
    {
        $response = new StreamedResponse;

        $disposition = $response->headers->makeDisposition($disposition, $name ?? basename($path));

        $response->headers->replace($headers + [
            'Content-Type' => $this->mimeType($path),
            'Content-Length' => $this->size($path),
            'Content-Disposition' => $disposition,
        ]);

        $response->setCallback(function () use ($path) {
            $stream = $this->readStream($path);
            fpassthru($stream);
            fclose($stream);
        });

        return $response;
    }

nefis yapılmış işte daha ne istiyorsun smile

Yalnız path belirtmek zorundasın.

Storage::download('foo.jpg');

gibi...

#16 Yanıt: Laravel 5.x Yardım » App name ve url değiştirmek » 22.05.2019 12:41:26

bu .env meselesini anlamak için şöyle bir açıklama yapayım.Zira kafalarda hep bir sorun oluşuyor soru soran arkadaşlar için.

Env laravel için ortam değişkenleri demektir.Bunu da birazdan yazacağım 3 sınıfla set ediliyor.

Öncelikle laravel env yönetemi için

https://github.com/vlucas/phpdotenv

bu paketi kullandığını bilmemiz gerekiyor.

Laravel boot sürecinde ilk olarak environment sınıfını yükler.

https://github.com/laravel/framework/bl … el.php#L37

yani bu demek oluyor ki daha providerlar bile yüklenmeden hatta ve hatta configurasyon bile yüklenmeden bu environment başlatılıyor.

Peki ne yapıyor.Uzun uzadıya anlatmak yersiz.Bizim için ipucu verecek kısım şurası

https://github.com/laravel/framework/bl … es.php#L92

bu satırda gördüğünüz gibi..Laravel environment yönetimi için sadece 3 sınıf kullanıyor...

EnvConstAdapter,ServerConstAdapter,PutenvAdapter

Bu sınıflar şuradadır.

https://github.com/vlucas/phpdotenv/tre … nt/Adapter

aslında görüldüğü gibi extradan 2 sınıf daha kullanılabilirmiş.Array ve Apache adapterleri.

Bu sınıfların icine girdiğinizde;

- EnvConstAdapter sınıfı $_ENV ile ilgili global environment değişkenine set ve get ile sorumludur.
- ServerConstAdapter sınıfı $_SERVER ile ilgili global environment değişkenine set ve get ile sorumludur.
- PutenvAdapter sınıfı putenv ve getenv ile ilgili global environment değişkenine set ve get ile sorumludur.

tüm mesele budur aslında.Laravel bu 3 sınıfa set ve get yapıyor yani

https://github.com/laravel/framework/bl … es.php#L89

bu linkte işaretlediğim satırda..create yaparken aslında environmentPath olarak dizin yolu ve environment dosyası olan .env dosyasının icindekileri tek tek bu sınıflara set ediyor.

Peki nasıl derseniz;

https://github.com/laravel/framework/bl … es.php#L32

bu linkteki işaretlediğim satır aslında takip ettiğinizde en nihai olarak

https://github.com/vlucas/phpdotenv/blo … es.php#L68

burada işaretlediğim yere gelir ve tüm adapterler olan sınıflara set yapar.

bütün mesele ana hattıyla bu kadar...

Yani siz .env dosyanızda foo = bar diye bir değer koyduğunuzda..aslında $_SERVER,$_ENV,getenv olarak kayıt yapmıs olursunuz.

.env

foo=bar
$_SERVER['foo'] // bar
$_ENV['foo'] //bar
getenv('foo') //bar

diye ulaşırsınız..hepsi aynıdır..
Laravelin yardımcı methodu olarak env() kullanır..

https://github.com/laravel/framework/bl … s.php#L641

oda burada işaretlediğim composer vasıtasıyla yüklediği helpers dosyası.

aslında env('foo',1); yaptıgınızda $variables olarak factory ettiği yine 3 sınıfı çağıyor ve get yapıyor..

$variables->get($key)

eğer 3 factory de de bulamazsa 2.parametre olarak verilen 1 değerini baz alır...

Env yönetimi genel hatlarıyla bu.

Dikkat edilmesi gereken husus,bu dosya düz bir dosyadır ve eğer izinler doğru verilmezse güvenlik açığı oluşturur.

o yüzden 2.parametre olarak verilen değer çok önemlidir.Yani .env de yoksa bu değeri kullan diye..bu da su demektir.Yani .env dosyası laravel icin zorunlu değildir ve proda gitmemesi gereken bir dosyadır aslında.

.env de olmayan bir xxx değer için şöyle yaptığımızda...

     $_SERVER['xxx'] = 'yyy';

    $a = env("xxx",1);

    dd($a); //yyy

Son olarak env() yardımcısından talep ettiğiniz her değer mutlaka string olmak zorundadır.

ornegin :

.env

1 = true

code

env(1,false); // exception alırsınız

env('1',false) // doğru olan budur.

Kolay gelsin iyi çalışmalar.

#18 Yanıt: Laravel 5.x Yardım » Birden fazla sitenin admin panelini tek panelde nasıl yönetebiliriz ? » 20.05.2019 10:07:37

cevabı apidir bunun,ama daha öncede söylediğim gibi çok iyi kurgulanması gerekir.Yoksa işin içinden çıkılmaz bug sürecine doğru yol alırsınız.

#19 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 15:40:51

ben kullandıgımda

abort(404,'customError');
NotFoundHttpException {#205 ▼
  -statusCode: 404
  -headers: []
  #message: "customError"
  #code: 0
  #file: "/var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php"
  #line: 982
  trace: {▶}
}

#20 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 15:37:53

ikinci parametre olan messajı gondermiyorsunuz gibi algılıyor burası sanki.

#21 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 15:27:52

Valla ne diyim bir problem var ama laravellik mevzu gibi gelmedi bana..

{{dd($exception)}}

böyle bir şey yazınca ne diyor.buraya yazarmısınız objeyi direkt.

#22 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 15:16:02

Sizin cache sorununuz var o zaman..

php artisan view:clear

deneyin calısacaktır.

#23 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 15:06:05

dil dosyası mevcut mu?

@section('message', $exception->getMessage())

direkt böyle kullanın bakalım ne diyecek?

#24 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 14:41:20

göstermemesi mümkün değil...

resources/views/errors/404.blade.php  dosyası mevcut bende.icinde de yukarıdaki kodlar.

abort(404,'sayfa yok'); 

şeklinde kullandım her hangi bir route üzerinde.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <!-- Fonts -->
        <link rel="dns-prefetch" href="//fonts.gstatic.com">
        <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">

        <!-- Styles -->
        <style>
            html, body {
                background-color: #fff;
                color: #636b6f;
                font-family: 'Nunito', sans-serif;
                font-weight: 100;
                height: 100vh;
                margin: 0;
            }

            .full-height {
                height: 100vh;
            }

            .flex-center {
                align-items: center;
                display: flex;
                justify-content: center;
            }

            .position-ref {
                position: relative;
            }

            .code {
                border-right: 2px solid;
                font-size: 26px;
                padding: 0 15px 0 15px;
                text-align: center;
            }

            .message {
                font-size: 18px;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div class="flex-center position-ref full-height">
            <div class="code">
                404            </div>

            <div class="message" style="padding: 10px;">
                sayfa yok</div>
        </div>
    </body>
</html>

Sizde nasıl bir çıktı gösteriyor.

#25 Yanıt: Laravel 5.x Yardım » Laravel 5.8 abort() sorunu » 17.05.2019 13:59:04

Çok basit aslında..Laravel errorlar için iki dizine bakar..

Birincisi: laravel çatısı altında resource/views/errors dizini.

Eğer burada yoksa, direkt olarak kendi bünyesindeki..

https://github.com/laravel/framework/tr … ions/views

bu linkteki dosyalara bakar..

Sizin tarafta errors/404.blade.php yoksa burayı getirir..

Yani direkt olarak...

@extends('errors::minimal')

@section('title', __('Not Found'))
@section('code', '404')
@section('message', __('Not Found'))

bunu basar..yani sizin mesaj demeniz bir şeye yaramıyor bu dosya için..Dil dosyanızda "Not found" keyi yoksa Not found basıyor..Dil dosyanız varsa o mesajı basar.

O zaman yapacağınız iş belli..

resources/views/errors/404.blade.php  yaratın...

ve icine su kodları koyun..

@extends('errors::minimal')

@section('title', __('Not Found'))
@section('code', '404')
@section('message', __($exception->getMessage() ?: 'not found'))

kolay gelsin...

Forum alt kısmı

Uygulama FluxBB