Laravel fungsi dalam fungsi (attendance:ExportAbsenLog & Upload Ulang Sftp)

Fungsi pertama : 

Jika menggunakan DB try catch maka :

  • tidak boleh menyimpan fungsi kedua di dalam try
  • saat memanggil fungsi kedua, ditambahkan string sebagai parameter untuk membedakan fungsi yang dilakukan oleh proses manual dan fungsi yang dipanggil dari fungsi lain
  • hasil dari fungsi kedua dibuat kondisi jika error

public function upload(Request $request)
    {
        DB::beginTransaction();
        try {
            DB::select("
            ");
            DB::commit();
        } catch (\Exception $e) {
            DB::rollback(); 
            return response()->json([
                'message' => 'Upload Try Error',
                'status' => '0'
                ]);
        }

        $sync = $this->uploadSftp('yes');

        if($sync == 1) {
            // all good
            return response()->json([
                'message' => 'Proses Upload Ulang SFTP Selesai',
                'status' => '1'
                ]);
        } else {
            return response()->json([
                'message' => 'Upload Proses Error',
                'status' => '0'
                ]);
        }
    }

 

Fungsi kedua :

  • Jika fungsi kedua dipakai juga oleh proses yang lain (manual) bisa di tambahkan parameter yang diisi oleh variabel dengan nilai = null
  • untuk mengembalikan (return) ke fungsi pertama maka dibuat kondisi yang menangkap nilai parameter, sedangkan kondisi lainnya (else) akan mengembalikan (return) untuk proses manual
public function uploadSftp($sftpulang = null)
    {
        //proses pertama
            DB::select("
            ");

            if($sftpulang){
                return 1;
            } else {
                //Return Selesai
                return response()->json([
                'message' => 'Process Upload SFTP selesai',
                'status' => 1
                ]);
            }
    }  

 

Kesimpulan :

Kondisi tersebut terjadi ketika akan memanggil fungsi didalam fungsi dan dimana fungsi kedua dipakai juga oleh proses yang lain

Terdapat modifikasi yang dilakukan pada fungsi kedua (existing) :

  • parameter fungsi ($sftpulang = null)
  • return diberi kondisi
 

Referensi Tambahan : 

https://www.petanikode.com/php-prosedur-fungsi/ dan


Komentar

Postingan Populer