Amir Alsaeed

الأعضاء
  • المساهمات

    20
  • تاريخ الانضمام

  • تاريخ آخر زيارة

السُّمعة بالموقع

11 جيدة
  1. لقد قمت بجدولة عمل في لارافيل ليتم تنفيذه كل مدّة معينة: <?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ \App\Console\Commands\MyCommand::class, ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { $schedule->command('MyCommand')->hourly(); $schedule->command('echo "Happy Coding!" ')->everyMinute(); } } ولكن سؤالي هو كيف يمكنني إجراء Unit Test على هذا الإجراء والتأكد من أن بعض الخصائص فيه تعمل بدون وجود مشاكل؟
  2. لقد قمت باستخدام انفوي على سيرفر خارجي، والآن أحاول إضافة Application class لإضافة اعتماديات جديدة على ملفات ال setup لها. ولكن يظهر لي هذا الخطأ الموجود في الصورة بشكل متكرر عند إضافة أي اعتمادية جديدة للمشروع. وبحسب التوثيق وباتباع الخطوات نفسها قمت بكتابة هذا الكود الخاص بالملف الرئيسي envoy.blade: @servers(['localhost' => '127.0.0.1']) @include('vendor/autoload.php') @setup $laravelApp = include 'bootstrap/app.php'; dump(config('database')); @endsetup @task('newtask', ['on' => 'localhost']) ls @endtask
  3. أقوم باختبار مشروع لارافيل على المتصفح باستخدام داسك، ولدي تأثير بسيط أثناء التنقل بين العناصر في الصفحة الواحدة scroll وأريد اختباره، ولكن لم أجد طريقة لجعل الاختبار يذهب إلى صفحة محددة ثم ينفّذ scroll عند الضغط على عنصر معيّن، والذهاب إلى الأسفل لعرض جزء آخر من الصفحة ورؤية تأثير الانتقال. حاولت بالكود التالي: class SliderTest extends DuskTestCase { /** * A Dusk test example. * * @return void */ public function testExample() { $this->browse(function ($browser) { $browser->visit('http://localhost:8000/home') ->click('label[for=test_1]') ->pause(500) ; }); } }
  4. لقد قمت بتهيئة السيرفر nginx، وتنصيب php و mysql ونقل مشروعي، ولكن عند إجراء أي عملية في قاعدة البيانات أحصل على خطأ: "PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in /home/forge/sximo.sp-marketing.com/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 311 كيف يمكنني حل المشكلة؟
  5. ثمت بإنشاء middleware التالي للتحكم بلغات الموقع: public function handle($request, Closure $next) { if(Session::has('locale')) { $locale = Session::get('locale',Config::set('app.locale')); } else { $locale = "ar"; } App::setLocale($locale); return $next($request); } والمتحكم الذي يقوم بتغيير اللغة: public function changeLang(Request $request,$lang) { if (!empty($request)) { Session::put('locale',$lang); } else { Session::set('locale',$lang); } return back(); } والمسار لذلك: Route::get('/{lang}','LanguageController@changeLang'); ولكن عند توجيه المسارات إلى لغة معيّنة لا يتم تغيير الغة. وأيضاً ماهي الطريقة لتغيير إلى أكثر من لغة من جهة المستخدم؟
  6. أحاول استخدام مكتبة socialite لتسجيل الدخول عن طريق الفيسبوك، ولكن أحصل على هذا الخطأ: BindingResolutionsException Target[Laravel\Socialite\Contracts\Factory] is not instantiable وهذا هو المتحكم الذي أقوم باستخدامه: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Laravel\Socialite\Facades\Socialite; class SocialAuthController extends Controller { public function redirect() { return Socialite::driver('facebook')->redirect(); } public function callback() { }
  7. لدي صف اسمه Cart وفيه تابع للشراء purchase، سيحتوي هذا الصف أيضاً هيكل التطبيق والتوابع الأخرى التي ستعتمد عليها معظم وحدات التحكم Controllers الخاصة بي. كيف يمكنني أن استخدم dependency injection بين وحدات التحكم الأخرى؟ أو بمعنى آخر كيف يمكنني إضافة Laravel Contracts مع استخدام Service providers أيضاً في لارافيل؟
  8. أقوم باستخدام job processing و job processed و job failed لمعرفة حالات الوظائف في لارافيل ورؤية حالة جدول queue log table. ولكن أيضاً أحتاج معرفة الحالات الإضافية مثل عند إدخال عمل ما إلى الرتل، فعند استخدامي للتابع: \Redis::lrange('queues:mws', 0, -1) يمكنني رؤية متغيّر اسمه pushedAt ولكن لا أعلم كيف يمكنني الوصول إليه أو التحكم به
  9. لدي API مبنية بواسطة لارافيل وتتصل مع تطبيق Angular موجود على اسم نطاق وخادم ويب مختلف. أحاول استخدام Sanctum للتحقق من الطلبات المستقبلة من Angular ولكنها لا تحوي CSRF Token ولذلك احصل على الخطأ: CSRF token mismatch error حاولت إرسال طلب التحقق من المستخدم للخادم كالتالي: this.http.get('sanctum/csrf-cookie') .pipe( switchMap(result => this.http.post('auth/login', {'email': email, 'password': password})) ); ولكن لم تعالج المشكلة
  10. أحاول تطوير نسخة مشروع مبني باستخدام Laravel و Vue JS إلى لارافيل 8، ولكن عند تنفيذ: npm run dev يظهر لدي هذا الخطأ: app.js:44258 Uncaught ReferenceError: route is not defined حاولت تتبع الخطأ فلاحظت وجود خط أحمر على السطر التالي: Vue.mixin({ methods: { route } }); ولكن لم استطع تحديد المشكلة أو كيفية حلها
  11. أحاول استخدام Fortify في لارافيل. ولكن لاحظت بأن المسارات الافتراضية التي يتم تهيئتها ضمن ملفات المكتبة موجودة في الملف: /vendor/laravel/fortify/routes/routes.php وهي مختلفة عن ملفات المسارات الموجوجة افتراضياً في التطبيق (web و api) فهل يجب علي التعديل على الملف السابق لإضافة أو تعديل مسارات ضمن المشروع؟
  12. عند محاولتي لنقل المشروع Laravel إلى خادم خاص وأثناء تثبيت الملفات والمكتبات ضمن لارافيل يظهر لي هذا الخطأ: Cannot create cache directory /home/amir123/.composer/cache/repo/mynewwebsite.org/, or directory is not writable. Proceeding without cache. وبعدها يستمر بتحميل المكتبات. فما معنى هذا الخطأ وهل سيسبب مشكلة في المشروع فيما بعد؟
  13. لدي تطبيق قمت ببنائه باستخدام React و Laravel وأقوم باستعمال websockets ضمن لارافيل. ولكن بعد تهئية الاتصال في websockets ومحاولة تشغيله عن طريق هذا الأمر: php artisan websockets:serve يظهر لدي الخطأ هذا الخطأ مباشرةً: Whoops\Exception\ErrorException : Class BeyondCode\LaravelWebSockets\Statistics\DnsResolver may not inherit from final class (React\Dns\Resolver\Resolver)
  14. لدي تطبيق لارافيل ضمن حاوية باستخدام docker. والتطبيق يقوم باستخدام Laravel Websockets، كيف يمكن تشغيل websockets أوتوماتيكياً عند تشغيل الحافظة في docker؟ فعند القيام باستخدام المنفذ الافتراضي ضمن الحاوية لا يتم الاتصال. هذا هو كود التعريف الحالي في ملف supervisord-app.conf: [program:websockets] command=/usr/bin/php /var/www/html/websocket-service/artisan websockets:serve numprocs=1 autostart=true autorestart=true user=www-data-new
  15. أقوم باستخدام Broadcast في لارافيل مع pusher للتعامل مع اتصالات من جهتين (ويب و api). كيف يمكن إجراء أكثر من تحقق authentication للصفحات التي يتم فيها الاتصال مع pusher؟ ففي حال تمّت زيارة الصفحة من الويب أو من API يتم التحقق من نفس الشرط أو guard. Broadcast::routes(['middleware' => 'web']); Broadcast::routes(['middleware' => 'auth:api']); ولكن الدمج نفس الروت لا يعمل