magento 2 confirm customer

i am tried to create login by mobile module so i need to confirm customer after verify mobile number.by this code i do that

add some value to customer session on magento 2

Hi … after many time

 

for add some data to customer session or another session you can do like this

 

 

 

لیست دستورات cli مجنتو ۲

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

ستاپ و اپگرید دیتابیس

php bin/magento setup:upgrade

با دستور زیر هم دیتابیس اپگرید میشه و هم دیتای پوشه pub حذف نمیشن

php bin/magento setup:upgrade –keep-generated

پاک کردن کش

php bin/magento cache:clean

فلاش کردن کش

php bin/magento cache:flush

وضعیت کش ها …خروجی به صورت ۱و ۰ خواهد بود که ۱ نشانه فعال بودن است

php bin/magento cache:status

فعال کردن یک کش خاص

php bin/magento cache:enable [cache_type]

غیر فعال کردن یک کش خاص …دقت کنید که توی این دستور و دستور بالا اگه دستور رو بدون اسم کش وارد کنید روی کلیه کش ها اعمال میشه یعنی یا فعال یا غیر فعال میشن

php bin/magento cache:disable [cache_type]

دپلوی کردن فایل های تمپلت …با این دستور کلیه فایل های سی اس اس و جی اس و … تملپت جنریت میشن توی فولدر pub/static که البته اگه از ورژن ۲.۲ به بعد برای فورس کردن و اورید فایل های میشه از f- استفاده کرد.

php bin/magento setup:static-content:deploy

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

php bin/magento setup:static-content:deploy en_US

دپلوی کردن فایل های یک تمپلت خاص

php bin/magento setup:static-content:deploy –theme=”Magento/backend”

دپلوی کردم چند تمپلت

php bin/magento setup:static-content:deploy –theme Magento/luma –theme Magento/second_theme

دپلوی کردن چند تملپ به جز یک تمپلت خاص

php bin/magento setup:static-content:deploy en_US –exclude-theme Magento/luma –no-html-minify


ری ایندکس کردن

php bin/magento indexer:reindex


دریافت توضیحات ری اندیکس

php bin/magento indexer:info

دریافت وضعیت ری ایندکس

php bin/magento indexer:status

دریافت وضعیت ری ایندکس …منظور ری ایندکس در حالت سیو یا به صورت دستی هستش

php bin/magento indexer:show-mode

دریافت وضعیت فعال بودن یا نبود همه ماژول ها

php bin/magento module:status

فعال کردن یک ماژول خاص

php bin/magento module:enable Namespace_Module

غیر فعال کردن یک ماژول خاص

php bin/magento module:disable Namespace_Module

حذف کردن یک ماژول … البته کلمه حذف درست نیست ولی دقیق یادم نمیاد که کلمه مقابل نصب چی بود 🙂

php bin/magento module:uninstall Namespace_Module

بررسی وضعیت سایت …پابلیش یا پروداکت یا دیفالت بودن

php bin/magento deploy:mode:show

تغییر وضعیت وضعیت سایت به دولوپر

php bin/magento deploy:mode:set developer

تغییر وضعیت سایت به پروداکشن

php bin/magento deploy:mode:set production

کامپایل کردن قایل های پی اچ پی

php bin/magento setup:di:compile

از بلاک در اوردن یک یوزر ادمین

php bin/magento admin:user:unlock adminusername

فعال کردن حالت در حال تغییرات یا همون حالت در حال بروز رسانی سایت

php bin/magento maintenance:enable

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

php bin/magento maintenance:enable –ip=192.0.0.1 –ip=192.0.0.2

پاک کردن لیست ای پی ها

php bin/magento maintenance:enable –ip=none

غیر فعال کردن حالت بروز رسانی

php bin/magento maintenance:disable

بررسی وضعیت بروز رسانی

php bin/magento maintenance:status

نوشتن phpunit test

سلام

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

خب با نصبش شروع می کنیم …. یه پروزه جدید درست کنید و توی دایکتوری روت پروژه این کامند رو بزنید (امیدوارم از لینوکس استفاده کنید و زیاد به گیر نخورین)

این خط کد چیکار می کنه ؟ با کامپوز یه ریکویست واسه نصب phpunit می فرستین … یه کمی زمان می بره تا نصب بشه واسه من دانلود پکیج حدود 10 دقیقه زمان برد پس صبور باشین … البته سری بعد که پکیح رو از کش دانلود میکنه زودتر نصب میشه

و این هم نتیجه نصب :

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

یه دایرکتوری به اسم mytest توی روت پروژه تون بسازید و بعد داخل اون دایرکتوری یه کلاس به اسم FirstTest که اکسند شده (extends) شده از \PHPUnit\Framework\TestCase بسازید . اگه نمیدونید اسکتند شدن چیه و چیکار میکنه این نوشته به درد شما نمیخوره چون باید با شی گرایی اشنا باشین  🙂 . و اینکه دقت کنین که حتما اسم کلاستون با Test تموم شده باشه

کلاس شما باید یه چیزی شبیه این باشه :

خب حالا میخوایم اولی متد به اسم test_sum رو بنویسیم … این متد دوتا عدد رو با هم جمع میکنه و تست میکنه ببینه ایا جمع دوتا عدد مثلا عدد 12 میشه یا نه … کلاستون باید تا الان اینجوری باشه

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

نکته : متدهای تست حتما با test شروع میشن … منظورم اسمشونه .

خب بریم سراغ اولین تست . کامند لاین تون (ترمینال .و..بش یا هرچیزی که بشه توی به php cli دسترسی داشت ) رو باز کنید. و وارد روت پروژه تون بشید و این دستور رو بزنید .

نتیجه باید چیزی شبیه این باشه :

و در صورتی که عدد 12 داخل کلاس رو مثلا به 13 تغییر بدین خروجی چیزی شبیه این خواهد بود .

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

فرض میگیرم که پروژه من توی دایرکتوری app و اسم کلاس من هم Shipping  و یه متد داره یه اسم getRegion  که میاد و یه ارایه از شهرها رو بر می گردونه …با این توضیحات فک کنم باید بدونین که یه کلاس به اسم Shipping توی دایرکتوری app باید بسازم و با یه متد به اسم getRegion  که قرار یه ارایه از شهر ها رو برگردونه

تقریبا یه همچین چیزی میشه :

خب حالا این کلاس رو توی کلاس تست قبلی require  میکنم و بعد یه متد توی کلاس تست م می نویسم واسه تست کردن اینکه ایا تهران جزئی از مقادیر برگشتن هست یا نه .

کلاس تست تقریبا اینجوری میشه:

خب یه متد به اسم test_region  به کلاس اضافه کردم و یه شی از کلاس Shipping ساختم و بعد هم مقدار استان ها رو از شی گرفتم … حالا با متد assertContains بررسی میکنم که استان ها شامل تهران میشن یا نه و نتیجه :

خب تا اینجای کار تقریبا اومد دستمون که یه تست چجوری کار میکنه … این فقط یک مثال خیلی ساده بود.

واسه توضیحات بیشتر به دایکیومنت خود سایت https://phpunit.de/manual/6.5/en/installation.html مراجعه کنید .

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

ساختن یک ساکس با ssh برای اندروید استدیو

یه موضوعی که توی اندروید استدیو خیلی اذیت میکنه اینه که باید واسه دانلود هر پکیج یه قند شکن وصل باشه که خب توی لینوکس نصب و راه اندازی خود عبور از محدودیت هم کار سختیه … در صورتی که یه سرور دارین …هر سروری که میشه بهش ssh زد میتونین به راحتی یه ساکس درست کنین و کل ترافیک مورد نیاز واسه نرم افزارتون (اندروید استدیو یا هر نرم افزار دیگری ) رو ازش عبور بدین
توی ترمینال بنویسین

حالا بدون اینکه ترمینال رو ببندین وارد تنضیمات اندروید استدیو بخش پروکس بکشید و تیک ساکس رو بزنید و توی بخش ادرس بنویسید localhost  و توی بخش پورت هم بنویسید 1234 (همون عدد بعد D) . خب دیگه کاری نداریم و می تونین از رهایی تون لذت ببرین.

 

پی نوشت : این واسه سایر نرم افزارها هم جواب میده (مثل تلگرم)

پی نوشت ۲ :  داشتن یک سرور یکی از پیش نیازهاست

پی نوشت ۳ : واسه مک و لینوکس(اوبونتو و سنت او اس) تست کردم و جواب داده ولی روی ویندوز تست نکردم و نمیدونم همچین قابلیتی داره و بعید هم میدونم همچین چیزی رو بشه روش پیاده کرد

تغییر تگ های یک فایل با php

یه ربات نوشتم و انداختمش به جون چندتا وبسایت موزیک و دیتا هاشون رو می کشم بیرون … البته ظاهر قضیه ایراد داره چون اصولی نیست و شرعی و حلال نیست (خنده ) ولی خب از انجام این کار لذت بردم .

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

getId3 : این اکستنشن پی اچ پی به شما کمک میکنه تگ های یک فایل رو ویرایش کنین . ادرس گیت هاب اون اینجاست.

یه نمونه کد که خودم نوشتم رو قرار میدم .یه کمی دقت کنید می فهمید داستان چیه

وارد صفحه گیت هاب بشین تا هم نمونه کد بیشتر و هم توضیحات بیشتری ببنید

پی نوشت : گیت هاب هم به مایکروسافت فروخته شد (بیچاره برنامه نویس ها )

پی نوشت دوم : تگ فایل همون اطلاعات فایل هستش مثلا داخل یه فایل mp3 تگ سال و عنوان و متن اهنگ و … وجود داره

پی نوشت سوم : به سرم زد متن اهنگ ها رو هم با همین تغییر تگ روی فایل اضافه کنم …باید جالب باشه

کپی کردن اطلاعات یک سرور روی سرور دیگر

قبلا همیشه طرز فکرم این بود که وقتی میخوای اطلاعات یک سرور رو ببری روی سرور دیگه باید بیایی از اطلاعات سرور اول بک اپ بگیری و بعد اون رو منتقل کنی که خب با این حساب باید تقریبا همیشه نصف سرور خالی باشه تا بشه از فایل ها بک اپ گرفت … تا این اواخر که که سرورم 90 درصدش پر شده بود و مجبورم بودم خیلی سریع انتقالش بدم روی یه سرور دیگه … دنبال یه دستور لینوکسی بودم که این کار رو انجام بده و با کمال تعجب دیدم که خیلی هم راحته :

این خط کد رو توی سرور اولتون بزنید …همون سروری که قراره ازش کپی بگیرین روی سرور دوم … r- باعث میشه اگه فایلی وجود داشت جایگزین بشه و بقیه چیزا هم که مشخصه

واسه مطالعه بیشتر هم میتونین به این لینک برین

 

اشتراک لوکال هاست در شبکه

در صورتی که توی یه شرکتی هستین و میخواید یه سایت رو فقط واسه شرکتتون نمایش بدین یا اینکه می خواید یه دمو از سایت رو به مدیرتون روی سیستم خودش نشون بدید باید لوکال هاستتون (به صورت تخصصی وب سرور داخلی تون ) رو با دیگران به اشتراک بزارین

این کار خیلی ساده است . در صورتی که از ویندوز استفاده می کنین از با دستور ipconfig  توی cmd (دکمه پنجره و R رو فشار بدید و بعد توی باکس مورد نظر بنویسید cmd  تا وارد محیط cmd  بشید) ip شبکه خودتون رو بدست بیارید …باید چیزی باشه شبیه 192.168.1.68 .

در صورتی هم که از لینوکس یا شایدم مک ( روی مک تست نکردم ولی چون تقریبا شبیه لینوکسه پس اصولا باید جواب بده )  استفاده می کنید توی بش یا ترمینال بزنید ifconfig تا ip شبکه رو بدست بیارید …باید چیزی شبیه 192.168.1.68 باشه

حالا برید روی سیستم دیگه ..دقت کنید که باید سیستم ها از طریق کابل شبکه باشن یا روی یک روتر باشن … مثلا همگی به مودم وایرلس وصل باشن … توی مرورگر ای پی شبکه سیستم خودتو رو بزنید مثلا 192.168.1.68 … حالا می بینید که لوکال هاستتون رو می بنید .

به همین راحتی … در صورتی که از ویندوز و ومپ استفاده میکنید …گوشه سمت راست پایین روی ایکن ومپ راست کلیک کنید و put online  رو بزنید.

اگرم میخواید روی دومین خاصی لوکال هاستتون رو ست کنید … واسه ویندوز توی فایل hosts … و توی لینوکس هم توی /etc/hosts ادرستون رو وارد کنید .

پی نوشت : نمیدونم hosts توی ویندوز کجاست

پی نوشت دوم : توی فایل hosts یه نمونه هست از روی اون کپی کنین … مثلا اینجوری میشه 192.168.1.68   mysite.local

بستن تک پی اچ پی یا نه

سوالی که واسه یکی از دوستان پیش اومده بود این بود که وقتی یه فایل پی اچ پی رو با تک در مورد فایل هایی که داخلشون هم کد php هست و هم کدهای دیگه مثل html و یا css تگ بسته بشه بهتره ولی در مورد فایل هایی که کلا کد php هستن نبستنش بهتره چون باعث به وجود اومدن Whitespace میشه و ممکنه توی کدها خطا ایجاد کنه….
همچنین گفته شده که بستن هر تگ پی اچ پی دو کاراکتر به کدمون اضافه میکنه و باعث اشغال شدن فضا میشه … که البته توی پروژ های خیلی بزرگ شاید صدق کنه ولی در مورد پروژه های کوچیک چیز زیاد مهم نیست .

منبع : سایت پی اچ پی