Laravel 控制器测试 作者: Shine 时间: 2022-06-02 分类: Laravel,PHP 评论 ## 新建控制器名字为 ForExampleController.php ```php get('domain')) { return response([ 'code' => 400, 'msg' => '错误的参数', ]); } return response([ 'code' => 200, 'msg' => '验证通过', ]); } } ``` ## 新建测试文件名字为 ForExampleControllerTest.php ```php 'nowtime.cc', ]); $forExampleController = new ForExampleController(); $res = json_decode($forExampleController->index($request)->getContent(), true); self::assertEquals(200, $res['code']); } } ``` 运行测试结果: 
Laravel 使用 Pipeline 实现 AOP(我不太清楚是否真属于 AOP 我也是一知半解,如有误请指正!) 作者: Shine 时间: 2022-05-05 分类: PHP 评论 ### 参考链接: 1. https://learnku.com/laravel/t/7543/pipeline-pipeline-design-paradigm-in-laravel 2. https://learnku.com/articles/44435 gist : https://gist.github.com/PrintNow/cbfe2db1b809bf72328a97ad9bd4449b --- ```php send($input) ->through([ RemoveBadWords::class, ReplaceWords::class, ]) ->then(function ($content) { return $content; }); echo "最终处理结果:$output"; ``` ## 运行结果 
Larvel + Vue 项目使用 Docker 作者: Shine 时间: 2021-12-28 分类: Docker 评论 先给出配置文件,有空了再慢慢说道 ### Dockerfile: ```dockerfile FROM node:12-alpine as frontend WORKDIR /app ADD web-vue/package.json /app/ ADD web-vue/package-lock.json /app/ RUN npm install --registry=https://registry.npm.taobao.org ADD web-vue /app RUN npm run build # 第 1 个阶段,构建 composer 所需要的依赖包 FROM composer as composer COPY database/ /app/database/ COPY composer.json /app/ RUN set -x ; cd /app \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ --no-interaction \ --no-plugins \ --no-scripts \ --prefer-dist # 第 2 个阶段 FROM shine09/php-fpm:73 as laravel ENV TZ="Asia/Shanghai" LANG="C.UTF-8" ARG LARAVEL_PATH=/app/laravel COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ COPY . ${LARAVEL_PATH} RUN set -x ; cd ${LARAVEL_PATH} \ && mv .env.docker .env \ && mkdir -p storage \ && mkdir -p storage/framework/cache \ && mkdir -p storage/framework/sessions \ && mkdir -p storage/framework/testing \ && mkdir -p storage/framework/views \ && mkdir -p storage/logs \ && chmod -R 777 storage \ && chmod -R 777 bootstrap/cache/ \ && php artisan package:discover # 第 3 个阶段 FROM nginx:alpine as nginx ENV TZ="Asia/Shanghai" LANG="C.UTF-8" ARG LARAVEL_PATH=/app/laravel COPY laravel.conf /etc/nginx/conf.d/ COPY --from=laravel ${LARAVEL_PATH}/public ${LARAVEL_PATH}/public COPY --from=frontend /app/net /app/frontend ``` ### docker-compose.yaml: ```yaml version: "3.7" services: php: build: context: . dockerfile: Dockerfile target: laravel container_name: project_app_server restart: always networks: - project_app nginx: build: context: . dockerfile: Dockerfile target: nginx container_name: project_app depends_on: - php ports: - "8092:80" networks: - project_app volumes: - ./logs/:/app/logs/ networks: project_app: driver: bridge name: project_app ``` ### laravel.conf: ```conf server { listen 80; server_name app.nowtime.cc; root /app/laravel/public; index index.php index.html; access_log /app/logs/$host.log; error_log /app/logs/$host.error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ^~ /app { alias /app/frontend; index index.html; try_files $uri $uri/ /app/index.html; } location ~ .*\.php(\/.*)*$ { fastcgi_pass project_app_server:9000; include fastcgi.conf; fastcgi_connect_timeout 10; fastcgi_send_timeout 10; fastcgi_read_timeout 10; } } ```
Laravel Mix 判断是否为生产环境 作者: Shine 时间: 2021-12-22 分类: Laravel 评论 有这么个需求,需要在一些静态文件带上 hash 参数,解决 CDN 缓存问题,但是在网上找的用这个 `mix.config.production` 是会报错的 然后自己打印 `mix` 发现了一个 `inProduction()` 方法,验证了下,这个确实是判断是否为生产环境的 #### 修改项目根目录下 webpack.mix.js ```js const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .postCss('resources/css/app.css', 'public/css', [ require("tailwindcss"), ]); if (mix.inProduction()) mix.version(); ``` #### 然后看 /public/mix-manifest.json 会发现内容是这样的 ```json { "/js/app.js": "/js/app.js?id=33663d66c33666962f26", "/css/app.css": "/css/app.css?id=7066f8a66603866e666" } ``` #### 只要你保证在你的 blade 模版里面使用如 `mix('js/app.js')` 这样引用的就没有问题 ```blade @yield('title') @yield('content') ``` #### 最终生成的代码是类似 `` 这样的
Composer install/require/update 忽略内存限制 作者: Shine 时间: 2021-10-25 分类: PHP 评论 ```shell php -d memory_limit=-1 /usr/local/bin/composer update --no-dev ```