خطای لاراول: Prepared statement needs to be re-prepared

نوشته‌شده در توسط .
خطای لاراول

من هر چند وقت یبار میبینم سایت بالا نمیاد و لاگ رو چک میکنم میبینم یچی مثل خط زیر رو پروژه ی لاراول لاگ داده:

SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared (SQL:...

من نه میدونم این اررور چیه و نه میدونم از کجا میاد یهو. تا جایی که خوندم یه باگه. برای حلش این کار رو خوندم که میشه انجام داد. به کانکشن مای اس کیو ال این آپشن رو اضافه کنید و احتمالا مشکل حل خواهد شد.

'options'   => [
				\PDO::ATTR_EMULATE_PREPARES => true
			]

یعنی الان کانکشنتون باید یچی مثل این بشه:

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
			'options'   => [
				\PDO::ATTR_EMULATE_PREPARES => true
			]
        ],

من کلی گشتم تا پیدا کردم گفتم دیگه شما نگردید 🙂

استخدام برنامه نویس لاراول

نوشته‌شده در توسط .

لاراول یه فریمورک خیلی محبوب و ترند برای زبان پی اچ پی هست، این فریمورک این روزها خیلی سر و صدا کرده و آگهی های استخدام برنامه نویس لاراول رو میتونید تو خیلی جاها ببینید. اگه شما هم برنامه نویس PHP و فریمورک Laravel هستید اینجا فرصت مناسبی هست که بتونید یه کار خوب، بدون دردسر و با درآمد خوب پیدا کنید. یا اگه دنبال برنامه نویس خوب هستید که کارتون رو بی درد سر به اون بسپرید و کار خوب تحویل بگیرید با ما تماس بگیرید.

نحوه ی همکاری چگونه خواهد بود؟

از نظر من در حال حاضر با وضعیت فعلی جامعه، استخدام شدن در یک شرکت با حقوق ثابت خیلی به صرفه نیست. تهران جای خوبی برای کار هست ولی برای زندگی نه! و شهرستان ها هم برعکس. من خودم یه فریلنسر هستم و با توجه به حجم بالای پروژه ای که بهم پیشنهاد میشه ترجیه میدم با همکاری شما کارهام رو انجام بدم، با مبلغ مناسب و مدیریت دقیق و حساب شده…

اگه برنامه نویس لاراول هستید (الزاما نه خیلی حرفه ای) با من تماس بگیرید که بتونیم همکاریمون رو شروع کنیم. اگه لاراول دوست دارید با من تماس بگیرید که بگم چیکار کنید که چند وقت دیگه بتونیم کار کنیم و نهایتا اگه پروژه ای دارید که میخواید به برنامه نویس واستون انجام بده، با من تماس بگیرید، بگید و تحویل بگیرید :)))

چطور به برنامه نویس اعتماد کنم؟

نوشته‌شده در توسط .

این سوالیه که خیلی وقتا کارفرما ها از من حتی خیلی میپرسن. سوال منطقی ای هم هست. برنامه نویس هایی که بصورت فریلنس کار میکنن معمولا بعد از نهایی شدن صحبت هاتون از شما پیش پرداخت میخوان و باید بدون اینکه کدی تحویل بگیرید بهشون اعتماد کنید و درصدی از مبلغ کار رو بهشون همون اول بدید که این درصد ممکنه تا ۳۰ درصد از مبلغ توافق شده باشه.

از طرفی باید به برنامه نویس حق بدیم، اون نمیدونه که شما واقعا روی تصمیمتون روی پروژه جدی هستید یا نه و مثلا ممکنه شما بعد از اینکه بخشی از پروژه پیش رفت تصمیمتون عوض شه و مثلا بگید فلان کار بهتره و کلا دیگه این پروژه رو کنسل کنید و برنامه نویس میمونه و شما هم به راحتی میتونید بدون پرداخت هیچ مبلغی از توافق خارج بشید 🙂

یه راه برای حل این مشکل اینه که مثلا یه قرارداد حقوقی سفت و سخت ببندید. ولی از اونجا که پیگیری شکایت توی سیستم قضایی ما دنگ و فنگ زیادی داره و اصلا ما خیلی حقوق بلد نیستیم که قرارداد خوب بنویسیم که همه چیز رو شامل بشه به نظر میرسه اینم راه خوبی نباشه. البته کار از محکم کاری عیب نمیکنه ولی راههای راحتتری هست که میشه با استفاده از اونها خیالتون راحتتر میشه از برنامه نویس. یسری از اونها رو که یادم میاد رو در زیر میارم:

اصلا این برنامه نویس از پس کار بر میاد؟

اکثر بد قولی هایی که توی کارهای این مدلی پیش میاد بخاطر همین موضوعه… باید ببینید شخص مقابل چقد بلده؟ خیلی راه وجود داره که بدونید طرف چقد بلده که تا جایی که یادم بیاد رو اینجا میارم:

نمونه کار های برنامه نویس رو بررسی کنید.

اولین و ساده ترین کار اینه که از برنامه نویس بخواید نمونه کارهای نزدیک به کار شما رو که انجام داده رو براتون بفرسته، ازش سوال کنید که همه کار رو خودش انجام داده یا از پلاگین یا کد های آماده هم استفاده کرده؟ ببینید کارهایی که انجام داده چقد سنگین بوده و چقد نزدیک به کار شما بوده. خیلی توی زیبایی ظاهری سایت غرق نشید و یکم به پیچیدگی و ظرافت پشت کد هم نیگا کنید. مثلا لودهای ایجکس یا فیلتر هایی که توی بخش های مختلف اسکریپت استفاده کرده رو میشه ظریف کاری حساب کرد.

پروژه شما چقد بزرگه؟

چک کنید ببینید زمان و هزینه ای که داده طرف با حجم و سختی کار شما میخونه؟ اگه حس میکنید کاری که شما دارید به فریلنسر مسیپرید کاره یه ماه دو ماه نیست یا کاره یه برنامه نویس نیست خب معلومه که یجای کار میلنگه دیگه. سعی کنید توی همین موضوع هم ازش سوال کنید و جوابش رو بررسی کنید. ممکنه مثلا بخش هایی از کار رو برنامه نویس داشته باشه و لازم نباشه دوباره کد نویسی کنه واسه اونا از صفر.

در مورد بخش های مختلف کارتون سوال کنید.

بخش های مختلف کار رو که توضیح دادید از برنامه نویس سوال بپرسید ببینید که ایده ی جدیدی مثلا داره؟ میدونه اصلا قضیه چیه؟

هزینه اجرای پروژه خیلی مهمه

همونطور که مبلغ خیلی بالا رو دوست ندارید حواستون باشه که همیشه مبلغ پایین نمیتونه خوب باشه، احتمالا این یکی دو تومنی که میدید به برنامه نویس انقد کم باشه که برنامه نویس وسط کار حجم بالای کار رو بذاره کنار مبلغ پایین پروژه و دلسرد بشه و اون پیش پرداختی که دادید هم اون وسط خورده بشه 🙂 در واقع بجای اینکه ۱۰ بار هزینه کنید و کلی از تایمتون هم هدر بره یک بار خوب پول بدید و کار خوب تحویل بگیرید. این روزا اینترنت پره از کدها و کارفرماهایی که دارن میگردن دنبال برنامه نویس دوم که کدشون رو تکمیل کنه که هزینه تکمیل کد ناقص از هزینه اجرای از صفر اون کد میتونه بیشتر باشه خیلی موقه ها.

سایت های فریلنسری منصف!

میتونید پروژه رو توی سایت های فریلنسری ایجاد کنید که مبالغی که ایجاد میکنید اونجا دست سایت باشه که بعد از تحویل پروژه آزاد بشن. این وسط یه ۵ تا ۱۰ درصد هم کارمزد باید به سایت بدید که اینش یکم بده و مورد دوم اینه که در صورت بروز اختلاف خیلی منصفانه به قضیه نگاه نمیشه. مورد بعدی رو اگه حواستون باشه حتما اختلاف به نفع شما داوری خواهد شد.

توضیحات دقیق پروژه (خیلی مهم)

آقا دقیقا بنویسید چی میخواید. ممکنه یه ماه وقتتونو بگیره ولی روزی که پروژه رو تحویل میگیرید خیالتون راحته که چی میخواید و اگه مشکلی بود راحت میتونید ارجاع بدید به اون نوشته ها برنامه نویس رو. توی یه فایل ورد یا توی یه برد ترلو یا هر جای دیگه لیست کاملی از امکانات و جزییات هر صفحه رو بنویسید. هیچ موقع نگید مشابه سایته فلان. چون ممکنه اون سایت اصلا وقتی پروژه رو تحویل میگیرید داون شده باشه یا ورژن جدیدش اومده باشه. اگه هم اینکارو میکنید یه عکس از اون صفحه ی سایت بگیرید و به داکیومنت اتچ کنید که همه چی یجا باشه. یک بار برای همیشه توضیحات رو کامل بنویسید و حالا دیگه این توضیحات رو میتونید به ۱۰۰ تا برنامه نویس بدید و لازم نیس واسه هر کدوم یه ساعت توضیح بدید و آخرشم کلی چیز جا مونده باشه…

اگه چیز دیگه ای به ذهنم رسید آپدیت میکنم این پست رو. شما هم اگه موردی بود توی کامنت ها بگید… مرسی

برنامه نویس حرفه ای لاراول!

نوشته‌شده در توسط .

لاراول یه فریمورک خیلی محبوب پی اچ پی هست و هر روز به تعداد پروژه هایی که باهاش کار میشه اضافه میشه و برنامه نویس های زیادی هم به سمت این فریمورک کشیده میشن، یاد گرفتن لاراول نسبتا آسون هست و خیلی از برنامه نویس ها که PHP رو خیلی هم خوب بلد نیستن خیلی زود میرن سمت لاراول و این باعث میشه که خیلی درک درستی از نحوه کار این فریمورک نداشته باشن و بعد ها پروژه ها رو نیمه کاره رها کنند و ما این روزها شاهد پروژه های ناقص خیلی زیادی هستیم که به ما مراجعه میکنند و میگن یه برنامه نویس لاراول داشتیم که کارمون رو نیمه کاره رها کرد و میخوایم یکی دیگه تکمیلش کنه…

لاراول یک فریمورک برای توسعه سریع و تمیز

من و گروهی که باهاش کار میکنم سالهاست که با فریمورک لاراول بصورت تجاری و حرفه ای کار میکنیم و میتونیم نیاز های شما رو در این زمنیه رفع کنیم. اگر قصد شروع یک استارت آپ جدید رو دارید و یا قصد دارید کار لاراولی قبلیتون رو توسعه بدید با ما تماس بگیرید که شروع کنیم کارمون رو.

ریست کردن پسورد MySQL در لینوکس

نوشته‌شده در توسط .

با سلام – اگه یادتون رفته که رمز یوزر rootتون چی بود، خیلی راحت میتونید رمز رو با سوپر ادمین ریست کنید و رمز جدید رو ست کنید.

دستور زیر رو بزنید که یه سوپر ادمین بدون سوال و جواب توی سیستم بشید:

رمز لینوکس رو وارد میکنید و حالا شروع میکنیم به کار، در مرحله بعد دستور زیر رو بزنید که بدون وارد کردن رمز بتونید وارد محیط خط فرمان مای اس کیو ال بشید:

توجه داشته باشید که خط بالا رو اول باید بزنید که سوپر ادمین بشید و بعد بتونید وارد شید. حالا که همه چی اوکیه با دستور زیر جدول mysql رو انتخاب کنید:

بعد از اون دستور زیر رو وارد کنید و جای my_password رمز دلخواه خودتون رو وارد کنید:

کارایی که کردیم رو با دستور زیر ذخیره کنید:

و نهایتا سرویس MySQL رو ریستارت کنید با دستور های زیر:

حالا exit کنید و با دستور زیر وارد محیط تحت کامند مای اس کیو ال بشید:

و لذت ببرید 🙂

کرک phpstorm در لینوکس و ویندوز و مک

نوشته‌شده در توسط .

سلام دوستان، کرک چیز خوبی نیست ولی به شرط اینکه پول شما بی ارزش ترین پول دنیا نباشه و برنامه نویسی توی کشور شما شغل حساب بشه و ارزش داشته باشه 🙂

یه راه خیلی ساده برای کرک نرم افزار phpstorm هست که همیشگی هست و لازم نیست شما هر چند روز یک بار بگردید دنبال آدرس لایسنس سرور برای اینکه وارد phpstorm تون بشید.

روی ویندوز یا لینوکس یه فایلی وجود داره به نام hosts که مسیر رو توی هر دو سیستم عامل در زیر میذارم که بدونید:

/etc/hosts در لینوکس و C:\Windows\System32\drivers\etc\hosts در ویندوز

دوستانی که مک دارن هم باید یه فایل به همین نام داشته باشن ولی خب اونا چون پولدارن بهتره که بخرن لایسنس رو 🙂

توی این فایل باید یه خط جدید اضافه کنید بصورت زیر:

تصویر کرک پی اچ پی استورم

این میگه که اگه نرم افزاری خواست به آدرس account.jetbrains.com دسترسی پیدا کنه تو بفرستش به لوکال هاسته خودم 🙂 ینی یه کاره کثیف :)))

بعد از این حالا توی صفحه ی کرک نرم افزار که ازتون میخاد کد فعال سازی بزنید، کد زیر رو وارد کنید:

از اونجایی که سایت ها از سرچ گوگل حذف میشن اگه اینکارو بکنن بخاطر همین از این به بعد اکتیویشن کد ها رو توی گیست گیتهاب میذارم


https://gist.github.com/tuytoosh/7ad4f252f6e7abf20726f734d5d9e831

آشنایی با ماژول ها در انگولار

نوشته‌شده در توسط .

برنامه های انگولار ماژولار هستند و انگولار سیستم ماژولاریتی خودش رو داره که اسمش هست NgModules. ماژول ها کانتینرهایی هستند که بخش هایی که یکار مرتبط و نزدیک به هم میکنن رو بهم میچسبونن. ماژول ها میتونن شامل کامپوننت ها و سرویس ها و حتی ماژول های دیگه باشن و هر ماژول میتونه توسط یه ماژول دیگه اکسپورت بشه حتی.

هر برنامه انگولار حداقل یدونه ماژول داره که بای دیفالت اسمش هست AppModule و توی فایل app.module.ts تعریف شده. یه برنامه کوچک ممکنه همین یدونه ماژول رو داشته باشه ولی برنامه های بزرگ ماژول های متنوعی دارن که هر کدوم کار خودشون رو میکنن.

یه ماژول رو با یه دکوریتور @NgModule() برای کلاس تعریف می کنیم که یه آبجکت رو بعنوان ورودی میگیره.

import { NgModule } from ‘@angular/core’;
import { BrowserModule } from ‘@angular/platform-browser’;
@NgModule({
imports: [ BrowserModule ],
providers: [ Logger ],
declarations: [ AppComponent ],
exports: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }

نحوه ی استفاده از بوت استرپ در انگولار

نوشته‌شده در توسط .

همونطور که انگولار یه فریمورک خوب برای جاوا اسکریپت حساب میشه، بوت استرپ ها یه فریمورک خوب و کار آمد هست که هم کار css و هم کار جاوا اسکریپت رو تا حدودی راحت کنه، ولی استفاده از ویژگی های jquery در انگولار اصلا توصیه نمیشه، چون که انگولار کارایی که jquery انجام میده رو به روش بهتر هندل میکنه پس ما تمام حرف هامون در رابطه با موارد css در بوت استرپ هست نه js. همچنین برای زیبایی کار fontawesome هم به کار خواهیم برد. برای نصب بوت استرپ و fontawesome از دستور زیر استفاده کنید:

 

اگه مراحل نصب به خوبی پیش رفتند میتونیم الان ازشون استفاده کنیم. در فایل src/styles.css  میتونیم استایل های سراسری رو ایمپورت کنیم، چون ما به این دو تا بصورت سراسری میخایم دسترسی داشته باشیم اونها رو توی این فایل ایمپورت میکنیم:

به همین راحتی تونستیم بوت استرپ و فونت آوسام رو به پروژه انگولارمون اضافه کنیم…

ساخت طرح کلی برنامه انگولار با بوت استرپ

خب حالا میخایم یه طرح کلی برای صفحه هامون در انگولار طراحی کنیم، یک ماژول بصورت زیر ایجاد میکنیم:

بعد میتونیم کامپوننت هایی که لازم داریم رو اضافه کنیم، فرض کنید به سه کامپوننت هدر فوتر و دربرگیرنده نیاز داریم :

فایل src/app/ui/layout/layout.component.html  رو به صورت زیر ادیت کنید که دو تا کامپوننت هدر و فوتر توی اون باشه:

و ماژولی که ساختیم رو بصورت زیر اصلاح کنید:

حالا میتونید فایل src/app/app.component.html  رو اصلاح کرده و در واقع قسمت اصلی که بدنه صفحه هست رو بهش اضافه کنید.

و فایل src/app/ui/header/header.component.html  رو بصورت زیر اصلاح کنید:

و نهایتا  src/app/ui/header/header.component.html  رو بصورت زیر اصلاح کنید:

 

حالا اگه پروژه رو سرو کنید باید یچیزی مثل اسکرین شات بالا رو ببینید، موفق باشید

ارسال داده از کامپوننت به قالب در انگولار – Data Binding

نوشته‌شده در توسط .

در ادامه پست های انگولار، امروز میخوام به انتقال مقادیر از logic به view بپردازم. یعنی میخام یه داده رو از کامپوننت به قالب بفرستم. برای این کار از دو روش string interpolation و property binding میتونیم استفاده کنیم که جداگانه در ادامه به اونها خواهم پرداخت.

string interpolation در انگولار

string interpolation در انگولار

ارسال داده از class به template با استفاده از string interpolation در انگولار به این صورت هست که شما مقدار property موجود در کلاس رو میتونید بصورت رشته درون قالب نمایش بدید. مثلا اگه کلاس کامپوننت بصورت زیر تعریف شده باشه و my_name  یک پراپرتی از این کامپوننت باشه،

شما میتونید مثلا بصورت زیر به این پراپرتی درون قالب دسترسی داشته باشید

که اگه ng serve  کنید خروجی بصورت زیر خواهد بود

property binding در انگولار

string interpolation در واقع نوع خاصی از property binding است که در آن نوع پراپرتی string است. یعنی شما نمیتونید مثلا مقدار boolean رو از این طریق به قالب ارسال کنید. برای این کار از property binding استفاده میکنیم. یعنی میتونیم مقدار پراپرتی رو به attribute های html و … بچسبونیم.

one way binding در angular

one way binding در انگولار

برای اینکه بیشتر متوجه موضوع بشید با مثال پیش میریم.

در کامپوننت بالا یک پراپرتی از نوع بولین تعریف شده که در قالب به html بایند شده است

توجه کنید که برای بایند کردن مقدار بولین نمیتونستیم بصورت زیر عمل کنیم و حتما باید از روش دوم استفاده کنیم

امیدوارم حرفام به دردتون خورده باشه 🙂

کامپوننت ها در انگولار و نحوه ساخت آنها

نوشته‌شده در توسط .
کامپوننت ها در angular

کامپوننت ها در انگولار در واقع یک کلاس تایپ اسکریپت هستند که توسط اون ها ما میتونیم منطق برنامه رو کنترل کنیم. بخش های مختلف یک برنامه انگولار از کامپوننت تشکیل میشه و شما میتونید هر بخش رو در کامپوننت های جدا قرار بدید، مثلا میتونید در ساده ترین حالت هدر، فوتر و یا سایدبار رو در کامپوننت خودش بذارید.

کامپوننت ها بخش های تقریبا مستقل از هم هستند و میتونن با ارسال داده به همدیگه با هم تعامل داشته باشن که حالا در پست های بعدی در مورد نحوه این تعامل بیشتر صحبت خواهیم کرد. برنامه انگولار شما بصورت پیشفرض دارای یک کامپوننت به نام app  هست که در ابتدای ران شدن برنامه این کامپوننت لود میشه که البته میتونید به انگولار بگید که کامپوننت دیگه ای رو لود کنه. با قرار دادن انتخابگر کامپوننت های دیگه توی این کامپوننت کامپوننت های دیگه توی این کامپوننت لود میشن.

ساخت کامپوننت در angular

برای ساخت اولین کامپوننت خودتون میتونید از cli کمک بگیرید و دستور زیر رو اجرا کنید.

با اجرای این دستور در دایرکتوری src/app  یک دایرکتوری جدید با اسم  my-first-component  مربوط به این کامپوننت ساخته میشه که چهار تا فایل داخل اون وجود داره.

شمای کلی یک کامپوننت در انگولار

  • my-first-component.component.css  : استایل های مربوط به کامپوننت درون این فایل نوشته میشه.
  • my-first-component.component.html  : قالب html کامپوننت هست
  • my-first-component.component.spec.ts  : فایل مربوط به تست برنامه هست که در ادامه بحث هامون بهش خواهیم پرداخت بیشتر
  • my-first-component.component.ts  : فایل اصلی کامپوننت که درون اون کلاس تایپ اسکریپت مربوطه نوشته میشه

محتوای کلاس کامپوننت رو در زیر میبینید

خط ۳ تا ۷ مربوط یه decorator کلاس هست که اولا میگه این کلاس یک کلاس معمولی نیست و یک کامپوننته و ثانیا مشخص میکنه که تگ انتخاب کننده، آدرس قالب و استایل این کامپوننت چی هست. کلاس های تایپ اسکریپت مثل همه زبون ها میتونن property و method های خودشونو داشته باشن. مثلا شما با تعریف یک پراپرتی در کلاس میتونید توی قالب که همون فایل html بود بهش دسترسی داشته باشید.

مثلا خط زیر رو توی کلاس بنویسید

و محتوای فایل  my-first-component.component.html  رو پاک کنید و این رو بنویسید  {{ test }} . میبینید که این مقدار درون قالب نمایش داده میشه. البته به شرطی که سلکتور اونو توی فایل app.component.html  قرار داده باشید.

همونطور که میبینید ما تونستیم یک داده رو از منطق برنامه به قالب برنامه ارسال کنیم. روش هایی برای ارسال و دریافت داده در کامپوننت وجود داره که در بخش های بعدی به اونها خواهیم پرداخت.

موفق باشید 🙂