Back to Question Center
0

نرم افزار Material Laravel + Angular Material قابل انعطاف و به راحتی قابل نگهداری است            Laravel + مواد زاویه ای قابل انعطاف و قابل انعطاف ادامه مطلب موضوع های مرتبط: DrupalFrameworksLaravelAPIsPatterns & ؛ Semalt

1 answers:
نرم افزار Material Laravel + Angular Material قابل انعطاف و قابل نگهداری

در این مقاله، ما قصد داریم یک API Laravel با مواد زاویه ای برای پایان جلویی ایجاد کنیم. ما همچنین به دنبال بهترین شیوه هایی هستیم که به ما کمک می کند با تعدادی از توسعه دهندگان کار بر روی پروژه و پیچیدگی های آن در مقیاس به کار روند. اکثر آموزشها این موضوع را از یک دیدگاه دیگر پوشش می دهند - آنها به طور کامل درباره پوسته پوسته شدن فراموش می شوند. Semalt این آموزش در برنامه های کوچک TODO نیست، بسیار مفید است اگر شما قصد دارید با دیگر توسعه دهندگان در یک پروژه بزرگ کار کنید - marklogic vs elasticsearch.

نرم افزار Material Laravel + Angular Material قابل انعطاف و به راحتی قابل نگهداری استLaravel + مواد زاویه ای قابل انعطاف و قابل انعطاف ادامه مطلب موضوع های مرتبط:
DrupalFrameworksLaravelAPIsPatterns و Semalt

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

راه اندازی Laravel

ایجاد یک پروژه

ما شروع به کشیدن در آخرین Semalt - 5. 1 در زمان نوشتن.

        آهنگساز ایجاد       -       پروژه laravel       /       laravel myapp       - 1)    ترجیح می دهند       -       dist        

تنظیم محیط

تمام دستورات بعدی در داخل پوشه myapp اجرا می شود. در طول باقی مانده از این آموزش، فرض کنیم شما در حال اجرای یک محیط لینوکس هستید اگر در کنار آن هستید. اگر شما به شما توصیه نمی شود Homestead Improved را به عنوان یک محیط لینوکس مجازی نصب کنید که در آن به دنبال آن هستید.

        cd myapp        

بعد، ما قصد داریم به روز رسانی . env فایل با اعتبار اتصال پایگاه داده:

        DB_HOST       =       localhostDB_DATABASE       =       شما       -       db       -       نامDB_USERNAME       =       your       -       نام کاربری      =             -       رمز عبور        

هنگامی که برنامه شما پیکربندی شده است، باید صفحه تبریک Semalt 5 را ببینید.

نرم افزار Material Laravel + Angular Material قابل انعطاف و به راحتی قابل نگهداری استLaravel + مواد زاویه ای قابل انعطاف و قابل انعطاف ادامه مطلب موضوع های مرتبط:
DrupalFrameworksLaravelAPIsPatterns و Semalt

Debugbar

اشکال زدایی Semalt یکی از بهترین بسته های Semalt است.

Semalt برای هر یک از موارد زیر خطا را آسان می کند:

  • استثنا
  • نمایش ها
  • پیام
  • پرس و جو
  • ایمیل
  • auth
  • راه
  • ajax
  • و بیشتر

نرم افزار Material Laravel + Angular Material قابل انعطاف و به راحتی قابل نگهداری استLaravel + مواد زاویه ای قابل انعطاف و قابل انعطاف ادامه مطلب موضوع های مرتبط:
DrupalFrameworksLaravelAPIsPatterns و Semalt

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

آن را نصب کنیم
        آهنگساز نیاز به بارویوده       /       laravel       -       debugbar        

بعدا باید پیکربندی / برنامه را باز کنیم . php و

  • اضافه کردن Barryvdh \ Debugbar \ ServiceProvider :: کلاس به فهرست ارائه دهندگان
  • add 'Debugbar' => Barryvdh \ Debugbar \ Facade :: class، به لیست aliases

تازه کردن صفحه و شما باید debugbar در پایین صفحه ببینید!

Debugbar به طور خودکار اجرا می شود اگر شما APP_DEBUG پرچم فعال خود را داشته باشد. env فایل.

راه اندازی

Semalt شروع به نصب در سراسر جهان. توجه داشته باشید که برای این بخش نیاز به نصب nodeJS دارید.

        npm نصب       -       g gulp        

و پس از آن ما نیاز به گرفتن چند بسته است که زندگی ما را ساده تر، بنابراین بسته خود را جایگزین کنید. json با موارد زیر:

        {           "وابستگی"      :             {           "gulp-concat"      :             "^ 2 6. 0"      ،            "gulp-concat-sourcemap"      :             "^ 1 .3 1"      ،            "فیلتر شلغم"      :             "^ 1. 2"      ،            "gulp-if"      :             "^ 1 .2.5"      ،            "gulp-jshint"      :             "^ 1 .9 0"      ،            gulp-minify-CSS      :             «^ 0 .3 11»      ،            "gulp-ng-annotate"      :             "^ 1"      ،                 :             «^ 2 .0»      ،            "gulp-sourcemaps"      :             "^ 1"      ،            "gulp-uglify"      :             "^ 1"      ،            "jshint-stylish"      :             "^ 2"      ،            "لاروئل اکسیر"      :             "^ 3. 0"      ،            "لاروئل-اکسیر-لیورپولاد"      :             "^ 1. 1 1"      ،            "فایل های اصلی-بویه"      :             "^ 2 1. 0"                    "devDependencies"      :             {           «زدن»      :             «^ 3 .9 0»           }           }        

سپس این بسته ها را نصب کنید.

        npm نصب        

مدیریت وابستگی های جلویی

من دوست دارم از Bower به دلیل درخت وابستگی صاف خود استفاده کنم، اما این واقعا به نفع شماست.
شما می توانید از npm، requirejs یا فقط نسخه قدیمی مرور به url و download-and-then-manually-check-for-updates استفاده کنید.

Semalt نصب در سراسر جهان.

        npm نصب       -       g bower        

سپس این خط را به اضافه کنید. gitignore :

/ bower_components

و اجرای init برای ایجاد یک جدید بویه. json فایل که در مخزن متعهد است.

پوشه بر اساس ویژگی

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

اکثر مردم ترجیح می دهند که آن را به منابع / js اضافه کنید، اما از آنجایی که من ترجیح می دهم یک پوشه را با ویژگی معماری داشته باشم، ما یک زاویه ای ) پوشه در سطح ریشه.

من این تنظیم را انتخاب کردم چون می خواهیم بتوانیم با تعدادی از توسعه دهندگان و با پیچیدگی کسب و کار در پشت آن مقابله کنیم.

چند ماه پس از آن، ما قصد داریم یک پوشه برای هر ویژگی داشته باشیم. در اینجا یک نمونه از پوشه هایی است که می خواهیم داخل زاویه ای / برنامه :

  • هدر
    • هدر html
    • هدر js
    • هدر کمتر
  • ورود به سیستم
    • ورود به سیستم html
    • ورود به سیستم js
    • ورود به سیستم کمتر
    • خدمات. js
  • فرود
  • کاربران
  • change_password
  • reset_password
  • list_items
  • add_item
  • item_details

بسیار آسان تر است که مشکلات را در صفحه list_items رفع کنید.

در صورت نیاز به باز کردن یک پوشه برای هر یک از این فایل ها، وقتی یک اشکال زدائی یک ویژگی واحد را باز کنید.

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

  • زاویه ای
  • زاویه ای / برنامه
  • زاویه ای / خدمات
  • زاویه ای / فیلترها
  • زاویه ای / دستورالعمل ها
  • زاویه / config

پیکربندی الیکسیر

حالا ما باید elixir را برای کامپایل کردن js / vendor پیکربندی کنیم. js و a css / vendor. CSS فایل از پوشه bower_components .

سپس ما باید پوشه زاویه ای خود را از طریق زاویه ای elixir اجرا کنیم که این کار را انجام می دهد:

  • پرونده های برنامه ما را به public / js / app پیوند می دهد. js
  • با jshint معتبر است (اگر فایل jshintrc در دسترس باشد). اگر فایل در دسترس باشد، اگر کد شما اعتبارسنجی را منتقل نکند، کد اصلی ما مجددا کپی نخواهد شد.
  • حاشیه نویسی وابستگی خودکار با استفاده از ng-annotate

ما باید پرونده های کمتری را کامپایل کنیم. اگر از Sass استفاده می کنید، احتمالا می دانید که چگونه آن را برای Sass کار کنید.

ما همچنین باید دیدگاه های ما را از داخل زاویه دایرکتوری به دایرکتوری عمومی کپی کنید.

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

بیایید باز gulpfile. js و فراخوانی تابع نمونه الیکسیر را با زیر تعویض کنید:

        var       اکسیر       =       نیاز به             'laravel-elixir 1)            (      '/ / وظایف / زاویه ای وظیفه. js'         نیاز به       (     . / وظایف / bower کار. js         نیاز به       (      'laravel-elixir-livereload'                     عملکرد       (      مخلوط      ) {     مخلوط کردن     .       bower                    .       زاویه ای       (      '. / زاویه ای /'                 .       کمتر             '/ زاویه ای / ** / *. کمتر      ،             'public / css'                 .       کپی       (      '. / زاویه ای / برنامه / ** / *. HTML'      ،             'عمومی / نمایش ها / برنامه /'                 .             (      '/ / زاویه ای / دستورالعمل / ** / *. HTML'      ،             'عمومی / نمایش / دستورالعمل /'                 .             (      '. / زاویه / dialogs / ** / *. HTML'      ،             'public / views / dialogs /'                 .       livereload       ([           عمومی / js / فروشنده. js '     ،            'public / js / app. js '     ،            public / css / vendor. CSS '     ،            public / css / app. CSS '     ،            'عمومی / نمایش / ** / *. html '          ،             {      liveCSS      :             true      })؛           })؛        

اگر متوجه شدید، چند بار کارهای سفارشی را بارگذاری میکنم، بنابراین فقط باید پوشه را در دایرکتوری ریشهی پروژه ایجاد کنید و این 2 فایل را ایجاد کنید:

وظایف / زاویه ای. وظیفه. js

        / * Elixir Task* کپی رایت به https: // github.       کار      ؛            الیکسیر      .       گسترش             'زاویه ای'      ،             عملکرد             src      ،       خروجی      ،       outputFilename                   {           var       baseDir       =       src       ||             الیکسیر      .       پیکربندی      .       assetsPath       +             '/ زاویه ای /'      ؛            جدید             کار             'زاویه ای در'             +       baseDir      ،             تابع                      {           / / فایل اصلی باید اول وارد شود.            بازگشت       gulp      .       src       ([      baseDir       +             "اصلی js"    28)       baseDir       +             "** / * .js"      ])           .       لوله       (      jshint                    .       لوله             jshint      .       خبرنگار       (      شیک 1)   ))            / /. لوله (jshint. خبرنگار ('شکست')). on ('error'، onError) // این را فعال کنید اگر میخواهید jshint را مجددا تأیید کنید           .       لوله             galfif       (!       config             تولید             sourcemaps             init         ))           .       لوله             concat       (      outputFilename       ||       1)    'app. js'      ))           .       لوله       (      ngAnnotate         )           .       لوله             galfif             config             تولید 1)   ،       uglify         ))           .       لوله             galfif       (!       config             تولید             sourcemaps      .       نوشتن         ))           .       لوله             gulp      .       dest       (      خروجی 1)    ||       config             js      .       outputFolder      ))           .       لوله       (      اطلاع       ({     عنوان      :             'لاراول الیکسیر'      ،      زیرنویس      :             'زاویه ای گردآوری شده!'      ،      آیکن      :       __ نام       +             '/. / node_modules / laravel-elixir / icons / laravel. png '     ،      پیام      :             ''           }))؛           }).                   baseDir       +             '/ ** / *. js              })؛        

وظایف / bower. وظیفه. js

        / * Elixir Task for bower* ارتقا از https: // github.       کار      ؛            الیکسیر      .       گسترش             'بویه'      ،             تابع             jsOutputFile      ،       jsOutputFolder      ،       cssOutputFile      ،       cssOutputFolder 1)                {           var       cssFile       =       cssOutputFile       ||             'فروشنده. CSS '     ؛            var       jsFile       =       jsOutputFile       ||             'فروشنده. js '     ؛            اگر             (!       الیکسیر             config       1)    تولید      ) {     concat       =       concat_sm      ؛           }            var       onError       =             function             (      خطا                   {     اطلاع      .       onError       ({     عنوان      :             "لاراول الیکسیر"      ،      زیرنویس      :             "Bower Files Compilation Failed!"      ،      پیام      :             خطا:  <٪ = خطا پیام٪>  "     ،      آیکن      :       __ نام       +             '/. / node_modules / laravel-elixir / icons / fail. png '          }) (      err               این      .       انتشار       (      'پایان'                       جدید             کار       (      bower-js      ،    (26       تابع                      {           بازگشت       gulp      .       src       (      mainBowerFiles         )           .       در             خطا      ،       onError                 .       لوله             فیلتر       (      '** / *. js'      ))           .       لوله             concat             jsFile      ،             {      منابع      :             درست      ))           .       لوله             gulpIf             الیکسیر             config 1)          تولید      ،       uglify         ))           .       لوله             gulp      .       dest       (      jsOutputFolder 1)    ||             الیکسیر      .       config             js (1          outputFolder      ))           .       لوله       (      اطلاع       ({     عنوان      :             'لاراول الیکسیر'      ،      زیرنویس      :             'Javascript Bower Files Imported!'      ،      آیکن      :       __ نام       +             '/. / node_modules / laravel-elixir / icons / laravel. png '     ،      پیام      :             ''           }))؛           }).       تماشا       (      'bower. json'               جدید             وظیفه       (      bower-css      ،             تابع          {           بازگشت       gulp      .       در             خطا      ،       onError                 .       لوله             فیلتر       (      '** / *. CSS'      ))           .       لوله       (      concat       (      cssFile      ))           .       لوله             gulpIf             config             تولید 1)   ،       minify         ))           .       لوله             gulp      .       dest       (      cssOutputFolder 1)    ||       config      .       css      .       outputFolder      ))           .       لوله       (      اطلاع       ({     عنوان      :             'لاراول الیکسیر'      ،      زیرنویس      :             'CSS Bower Files Imported!'      ،      آیکن      :       __ نام       +             '/. / node_modules / laravel-elixir / icons / laravel. png '     ،      پیام      :             ''           }))؛           }).       تماشا       (      'bower. json'              })؛        

این 2 وظیفه شبیه به نظر می رسد کمی پیچیده است، اما شما لازم نیست که در مورد آن نگران باشید. Semalt اینجا برای سرعت بخشیدن به فرآیند توسعه خود را به جای اتلاف وقت تنظیم ابزار ساخت.

دلیل اینکه من از بعضی از گره های موجود در دسترس در اینترنت استفاده نمی کنم این است که در زمان نوشتن، آن ها آهسته و اغلب از لحاظ قابلیت محدود هستند. لذت بردن!

تنظیم AngularJS

نصب و راه اندازی

با دانلود آخرین نسخه Semalt 1

شروع کنیم.
        bower نصب زاویه ای       # 1 - ذخیره        

فراموش نکنید - ذخیره پرچم، زیرا ما می خواهیم این را در bower ذخیره کنید. جون

حالا می توانیم تماشا کنیم .

پیکربندی ماژول اصلی

با تنظیم زاویه / اصلی شروع کنید. js

        (      تابع          {           "استفاده از سخت"      ؛            var       برنامه       =       زاویه ای      .       ماژول       (      'برنامه'      ،            [           'برنامه. کنترل کننده ها "     ،            'برنامه. فیلترها '     ،            'برنامه. خدمات      ،            'برنامه. دستورالعمل ها      ،            'برنامه. مسیرها      ،            'برنامه. config '          ])؛      زاویه ای      .       ماژول       (      برنامه مسیرها      ،             [])؛      زاویه ای      .       ماژول       (      'کنترل کننده برنامه'      ،             [])؛      زاویه ای      .       ماژول       (      'برنامه فیلترها'      ،             [])؛      زاویه ای      .       ماژول       (      'برنامه خدمات'      ،             [])؛      زاویه ای      .       ماژول       (      دستورالعمل برنامه      ،             [])؛      زاویه ای      .       ماژول       (      'app config'      ،             [])؛           })   ؛        

پل مروارید و زاویه ای

خدمت به برنامه

ما باید یک کنترلر جدید با استفاده از صنعتگر ایجاد کنیم. php عمومی تابع serveApp ( بازگشت نمایش ( 'شاخص' }

و سپس مسیر موجود Route :: get ('/'، . ) را در مسیرهای 49 جایگزین کنید. php با موارد زیر:

(248) مسیر :: دریافت '/' ، (1 'AngularController @ serveApp'

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

سپس، ما نیاز به ایجاد دیدگاه منابع / نمایش / شاخص. تیغه php و اضافه کردن این HTML:

ng-app = "app" > rel = «شیوهنامه» href = "/ css / vendor. css" > rel = «شیوهنامه» href = "/ css / app. css" > class = md-raised md-primary به مواد زاویه ای خوش آمدید <اسکریپت src = "/ js / فروشنده. js" / script> <اسکریپت src = "/ js / app. js" / script>

مرورگر پشتیبانی نشده

نیمه عمودی Semalt در مرورگرهای همیشه سبز هدف قرار می گیرد، بنابراین ما باید یک صفحه را برای موارد پشتیبانی نشده (IE <= 10) اضافه کنیم.

ما با اضافه کردن نظر شرطی زیر در از شاخص ما شروع می کنیم. تیغه php مشاهده:

                                            
March 7, 2018