Showing results for “php”

12 results found

  • วิธีแก้ไข: PHP Fatal Error: Allowed Memory Size Exhausted

    Topic
    Save Pongsiri 3 weeks ago

  • สร้าง Helpers เองใน Laravel

    Article
    Save Pongsiri 3 months ago

    อย่างที่รู้กันว่า Laravel มี helpers เริ่มต้นมาให้เราใช้กันอยู่แล้ว (ดูคู่มีได้ที่ https://laravel.com/docs/5.7/helpers)แต่บางโปรเจคเราอาจต้องสร้าง helper ขึ้นมาเอง เพื่อใช้งานกับเฉพาะบางอย่างกับโปรเจคนั้นๆ โดยแนะนำให้สร้างไฟล์ .php ไว้ที่โฟลเดอร์ app เราอาจจะตั้งชื่อไฟล์ว่า app/helpers.php ก็ได้นะจากนั้นก็ตั้งค่าให้ Laravel โหลดไฟล์นี้ก่อนทำอย่างอื่น โดยการเปิดไฟล์ composer.json แล้วหาในส่วนของ autoload จะเห็นหน้าตาประมาณนี้... "autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/" } }, ...เราจะทำงานเพิ่มชื่อไฟล์ที่เราพึ่งสร้างเข้าไป... "autoload": { "files": [ "app/helpers.php" ], "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/" } }, ...แล้วก็ dump composer ใหม่ด้วยครับcomposer dump-autoloadตอนนี้ก็ถือว่าไฟล์ Helpers ได้ถูกต้อง autoload ไว้แล้ว เรามาก็ลองสร้าง function ไว้ที่ไฟล์ app/Helpers.php ของเรากัน ตัวอย่างด้านบนเป็น function ไว้เช็คชื่อ Route ที่กำลังเปิดอยู่ เพื่อที่เราจะเอาไปใช้ใส่ class ของ css เวลาที่จะทำให้ลิงค์นั้นมัน active (ดูว่า URL ที่กำลังเปิดอยู่มีชื่อ Route ว่า ... จริงมั้ย? ถ้าใช่ให้ return คำว่า "active" ออกมา)เอาไปใช้ที่ไฟล์ blade ได้เลยนี่เป็นตัวอย่าง helper นึงนะครับ เราสามารถสร้าง helper เองกันได้เลยโดยเพิ่ม function ไว้ที่ไฟล์ app/helpers.php นั่นแหละ (เขียนเช็คสักหน่อยว่ามีฟังก์ชั่นนี้หรือยังด้วยนะ) ที่นี่เราก็มี helpers ของตัวเองสำหรับโปรเจคของเรากันแล้ว

  • วิธีแก้ปัญหาการติดตั้ง PHP7.2 ใน macOS ไม่ได้

    Topic
    Save Pongsiri 3 months ago

    จากปัญหาที่พอจะเซ็ตให้ macOS ใช้ PHP7.2 brew link php72แล้วขึ้น Error ประมาณนี้Linking /usr/local/Cellar/php71/7.1.14_25...Error: Could not symlink sbin/php-fpm/usr/local/sbin is not writable.ให้เราลองเช็คว่ามีไฟล์นี้อยู่จริงมั้ยls /usr/local/sbin ถ้าไม่นี้เราจะเห็นข้อความนี้ls: /usr/local/sbin: No such file or directoryให้เราสร้างไฟล์ sbin และกำหนดสิทธ์ให้อยู่กลุ่ม adminsudo  mkdir -p /usr/local/sbinsudo chown -R $(whoami):admin /usr/local/sbinแล้วก็สั่ง link อีกทีนึงครับbrew link php72เรียบร้อยแล้วLinking /usr/local/Cellar/php71/7.1.14_25... 17 symlinks created** วิธีนี้อาจจะปรับใช้ได้กับ PHP เวอร์อื่นๆ

  • วิธีรัน Laravel บนแชร์โฮส แบบไม่ต้อง /public

    Topic
    Save Pongsiri 4 months ago

    เมื่อเราต้องอัปโปรเจค Laravel ของเราขึ้นไปโฮสที่เป็นแชร์โฮสที่มีโฟลเดอร์ public_html มาให้เราอัพเว็บได้อย่างเดียว สิ่งที่เราต้องทำคือ ถ้าเราสามารถอัปไฟล์นอกโฟลเดอร์ public_html ได้ เราก็อัปขึ้นไปที่โฟลเดอร์นอก public_html แล้วเปลี่ยนชื่อโฟลเดอร์ public ใน laravel เป็น public_html แทนก็ได้ แต่ถ้าเราไม่มีสิทธิ์อัปไฟล์นอกโฟลเดอร์ public_html แล้วละก็ ให้ใช้วิธีนี้เป็นวิธีสุดท้าย (เพราะความปลอดภัยมันน้อยกว่า)1. ย้ายทุกอย่างจากโฟลเดอร์ /public ออกมาอยู่ในโฟลเดอร์โปรเจค 2. เปิดไฟล์ index.php ขึ้นมา แล้วแก้ไขตามนี้require __DIR__.'/bootstrap/autoload.php';$app = require_once DIR.'/../bootstrap/app.php';

  • วิธีแก้ปัญหา SoftException writable by group

    Topic
    Save Pongsiri 7 months ago

    สำหรับใครที่ใช้ centos แล้วอัพเว็บขึ้นด้วย git พอ cloneโปรเจคมาแล้วปรากฎว่าเว็บรันไม่ได้ขึ้น internal error 500 ลองเข้าไปเช็ค error log เจอข้อความแบบนี้SoftException in Application.cpp:256: File "/home/username/public_html/index.php" is writeable by groupวิธีแก้คือ1. แก้ไขไฟล์ ~/.bash_profile เพิ่มบรรทัดนี้ลงไปumask 0222. เปลี่ยน permission ให้กับทุกไฟล์และโฟลเดอร์เป็น 755chmod -R 755

  • วิธีเซ็ต .htaccess เมื่ออัพ laravel ขึ้น cPanel

    Topic
    Save Pongsiri 7 months ago

    cPanel ใช้ apache เป็นเว็บเซิร์ฟเวอร์อยู่แล้วดังนั้นแก้ไขไฟล์ .htaccessRewriteEngine OnOptions +FollowSymLinksRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^ index.php [L]RewriteRule ^(.*)$ public/$1 [L]

  • ติดตั้ง php บน macos ด้วย brew

    Topic
    Save Pongsiri 8 months ago

    First install Brew on your MACSetup Brew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew updatebrew tap homebrew/dupesbrew tap homebrew/phpInstall PHP 7.0.+ brew install php70Install mcrypt: brew install mcrypt php70-mcryptFinally, install composer: brew install composerNow if you run $ php -v, you will get PHP 5.5 or something. This is the default PHP version that is shipped with OSX and cannot be removed. You just need to edit your path to ensure that PHP 7.0 is picked up.export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"To debug any issue with any package, you can run brew info php70 etc.Also, if you are getting seemingly unrelated errors, make sure to update bash/zsh: brew upgrade bash and brew upgrade zsh.If everything is setup correctly, running $ php -v should give you 7.0.+.Thank! https://gist.github.com/shashankmehta/6ff13acd60f449eea6311cba4aae900a

  • Laravel วิธีตั้งค่าให้เป็น https เมื่ออยู่บน production

    Topic
    Save Pongsiri 8 months ago

    <?phpnamespace App\Providers; ...use Illuminate\Support\Facades\Schema;... class AppServiceProvider extends ServiceProvider{    /**     * Bootstrap any application services.     *     * @return void     */    public function boot()    {        ...    }    /**     * Register any application services.     *     * @return void     */    public function register()    {         if (config('app.env') == 'production') {            $this->app['url']->forceScheme('https');        }    }}

  • วิธีรัน serve ของ laravel ให้เครื่องอื่นเปิดดูได้

    Topic
    Save Pongsiri 9 months ago

    sudo php artisan serve --host 192.168.1.101 --port 80

  • วิธีแก้ปัญหา paginator หน้าอื่นๆ ไม่เป็น https ใน laravel

    Article
    Save Pongsiri 9 months ago

    กรณีนี้เกิดจาก forceSchema('https') ที่เราตั้งค่าไว้เพื่อให้เปลี่ยนทุกอย่างเป็น https มันไม่ส่งผลกับ url ใน paginator เมื่อมันมีพวก X-FORWARDED อยู่นะสิ ดังนั้นทางแก้ของเราก็คือสร้าง middleware ขึ้นมาสำหรับตั้งค่าเชื่อถือ Proxy ของเราครับตั้งชื่อไฟล์ app/Http/Middleware/HttpsProtocol.phpแล้วก็ไปบอก Kernel.php ให้รู้จักกันซะ ที่ไฟล์ app/Http/Kernel.php

  • เปิดโหมด Debug ใน wordpress

    Topic
    Save Pongsiri 9 months ago

    ตั้งค่าที่ไฟล์ wp-config.php define('WP_DEBUG', true);

  • ดึง RSS ฟีดมาแสดงใน Laravel

    Article
    Save Pongsiri 9 months ago

    ใครที่ใช้ Laravel 5 และกำลังหาวิธีดึง RSS ฟีดมาแสดงที่เว็บของเรา  วันนี้ผมขอแนะนำแพคเกจ willvincent/feeds ที่ช่วยให้คุณตอบสนองความต้องการนั้นครับติดตั้ง willvincent/feedsใช้คำสั่ง composer require ดาวน์โหลดแพจเกจ willvincent/feeds ลงในโปรเจค Laravel 5 ของเราก่อนครับ composer require willvincent/feedsแล้วก็เข้าไปเพิ่ม provider ในไฟล์ config/app.php     'providers' => [        // ...        willvincent\Feeds\FeedsServiceProvider::class,    ],และเพิ่ม faces ลงในส่วนของ aliases ในไฟล์เดียวกัน    'aliases' => [        // ...        'Feeds'    => willvincent\Feeds\Facades\FeedsFacade::class,    ],ก่อนใช้งานเราก็ต้องดึง config ของแพคเกจออกมาก่อนครับphp artisan vendor:publish --provider="willvincent\Feeds\FeedsServiceProvider"เสร็จแล้วจะไฟล์ config/feeds.php กำเนิดเกิดขึ้น (ถ้าใครไม่ขึ้นหรือรันไม่ผ่านให้ลองรันคำสั่งล้างแคชก่อนนะ php artisan config:cache)การใช้งานใน Controllerเราจะใช้งานด้วยฟังก์ชั่น make()  ซึ่ง 3 พารามิเตอร์- ลิงค์ของ RSS ถ้ามีหลายลิงค์ให้ใส่เป็น array- ตัวเลขจำนวนฟีดที่แสดงไม่เกินกี่ฟีด- บังคับอ่านไฟล์ที่ไม่ถูกรูปแบบ RSS ใส่เป็น Booleanเริ่มด้วยกันเรียกใช้งานคลาสด้วย faces ที่เราเตรียมไว้ส่วนบนๆ ของ controller เราเลยครับ ... use Feeds; class FeedsController extends Controller{     ... }    โค้ดตัวอย่างนี้ เราจะเขียน method สำหรับอ่านข้อมูลจากลิงค์ RSS มาแปลงเป็น array แล้วส่งต่อไปแสดงผลที่ View ครับ    public function news()    {        $feed = Feeds::make('https://www.thaiware.com/rss/rss_latestPost_news.php');        $data = array(          'title'     => $feed->get_title(),          'permalink' => $feed->get_permalink(),          'items'     => $feed->get_items(),        );        return view('feeds', $data);    }ในส่วนของ views/feeds.blade.php เราจะลูป Feeds จาก controller มาแสดงครับ  <h1><a href="{{ $permalink }}">{{ $title }}</a></h1>  @foreach ($items as $item)    <div class="item">       <img alt="Image" src="{{ $item->get_enclosure()->link }}">           <h2><a href="{{ $item->get_permalink() }}">{{ $item->get_title() }}</a></h2>      <p>{{ $item->get_description() }}</p>      <p><small>Posted on {{ $item->get_date('j F Y | g:i a') }}</small></p>    </div>  @endforeachปล. สามารถดูตัวอย่างผลลัพธ์ของโค้ดด้านบนได้เลยที่หน้า RSS ฟีดของไอเดียจิตอลครับ https://www.ideagital.com/news