PHP Monitor 6 release
@ -5,20 +5,20 @@
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^8.2",
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"laravel/framework": "^9.19",
|
||||
"laravel/sanctum": "^3.0",
|
||||
"laravel/tinker": "^2.7",
|
||||
"guzzlehttp/guzzle": "^7.7",
|
||||
"laravel/framework": "^10.12",
|
||||
"laravel/sanctum": "^3.2.5",
|
||||
"laravel/tinker": "^2.8.1",
|
||||
"league/commonmark": "^2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
"laravel/pint": "^1.0",
|
||||
"laravel/sail": "^1.0.1",
|
||||
"mockery/mockery": "^1.4.4",
|
||||
"nunomaduro/collision": "^6.1",
|
||||
"phpunit/phpunit": "^9.5.10",
|
||||
"spatie/laravel-ignition": "^1.0"
|
||||
"fakerphp/faker": "^1.22",
|
||||
"laravel/pint": "^1.10",
|
||||
"laravel/sail": "^1.22",
|
||||
"mockery/mockery": "^1.5.1",
|
||||
"nunomaduro/collision": "^7.1",
|
||||
"phpunit/phpunit": "^9.6.8",
|
||||
"spatie/laravel-ignition": "^2.1.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
@ -61,6 +61,6 @@
|
||||
"pestphp/pest-plugin": true
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"minimum-stability": "stable",
|
||||
"prefer-stable": true
|
||||
}
|
||||
|
710
composer.lock
generated
BIN
public/images/marketing.jpg
Normal file
After Width: | Height: | Size: 644 KiB |
Before Width: | Height: | Size: 627 KiB |
BIN
public/images/standalone.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
public/images/updater.jpg
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
public/images/version-manager.jpg
Normal file
After Width: | Height: | Size: 123 KiB |
@ -33,13 +33,13 @@
|
||||
</head>
|
||||
<body class="font-sans antialiased">
|
||||
<div>
|
||||
<div class="bg-blue-50 flex">
|
||||
<div class="bg-blue-900 flex">
|
||||
<header class="flex flex-col m-auto max-w-xl py-5 md:py-8 lg:py-10 p-4">
|
||||
<div>
|
||||
<x-logo size="100"></x-logo>
|
||||
<h1 class="text-5xl font-bold mb-3">
|
||||
<h1 class="text-5xl font-bold mb-3 text-white">
|
||||
PHP Monitor<br/>
|
||||
<span class="text-blue-800">Early Access</span>
|
||||
<span class="text-blue-400">Early Access</span>
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
|
@ -2,11 +2,16 @@
|
||||
<div class="lg:w-1/2 w-full flex py-4 md:px-4 align-middle items-center">
|
||||
<div class="flex flex-col">
|
||||
@isset ($featureTitle)
|
||||
<h3 class="text-blue-800 font-bold mb-2 uppercase">{{ $featureTitle }}</h3>
|
||||
<h3 class="text-blue-800 font-bold text-xl mb-5 border-b-blue-300 border-b-2 pb-2 inline-block">
|
||||
@isset($new)
|
||||
<span class="bg-blue-800 text-white px-2 py-1 rounded-xl mr-1 text-sm relative bottom-0.5">NEW</span>
|
||||
@endisset
|
||||
{{ $featureTitle }}
|
||||
</h3>
|
||||
@endisset
|
||||
<p class="text-lg">{{ $slot }}</p>
|
||||
<p class="text-lg text-gray-800">{{ $slot }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="lg:w-1/2 w-full items-center align-middle rounded-lg shadow-lg" style='background-color: #EEE; background-position: {{ $yPosition ?? 'center' }} center; background-image: url("{{ $imgSrc ?? '' }}"); background-repeat: no-repeat; background-size: cover; min-height: 260px;'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1 +1 @@
|
||||
<svg width="{{ $size }}" height="{{ $size }}" viewbox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"><path d="M8.975 8.375H8.3V6.844a.223.223 0 00-.225-.219h-.45a.223.223 0 00-.225.219V9.03c0 .12.101.219.225.219h1.35a.223.223 0 00.225-.219v-.437a.223.223 0 00-.225-.219zm10.575 5.25h-.45v-2.956c0-.347-.143-.68-.397-.927l-2.81-2.731a1.37 1.37 0 00-.953-.386H13.7V5.312C13.7 4.588 13.095 4 12.35 4h-9C2.605 4 2 4.588 2 5.313v8.75c0 .724.605 1.312 1.35 1.312h.45C3.8 16.825 5.01 18 6.5 18c1.49 0 2.7-1.176 2.7-2.625h3.6c0 1.45 1.21 2.625 2.7 2.625 1.49 0 2.7-1.176 2.7-2.625h1.35c.247 0 .45-.197.45-.438v-.874a.445.445 0 00-.45-.438zM6.5 16.688c-.745 0-1.35-.588-1.35-1.313s.605-1.313 1.35-1.313c.745 0 1.35.588 1.35 1.313s-.605 1.313-1.35 1.313zm1.35-4.813c-1.74 0-3.15-1.37-3.15-3.063C4.7 7.12 6.11 5.75 7.85 5.75S11 7.12 11 8.813c0 1.692-1.41 3.062-3.15 3.062zm7.65 4.813c-.745 0-1.35-.588-1.35-1.313s.605-1.313 1.35-1.313c.745 0 1.35.588 1.35 1.313s-.605 1.313-1.35 1.313zM17.75 11H13.7V7.937h1.24l2.81 2.732V11z" fill="rgb(30 64 175)" fill-rule="nonzero"></path></svg>
|
||||
<svg width="{{ $size }}" height="{{ $size }}" viewbox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"><path d="M8.975 8.375H8.3V6.844a.223.223 0 00-.225-.219h-.45a.223.223 0 00-.225.219V9.03c0 .12.101.219.225.219h1.35a.223.223 0 00.225-.219v-.437a.223.223 0 00-.225-.219zm10.575 5.25h-.45v-2.956c0-.347-.143-.68-.397-.927l-2.81-2.731a1.37 1.37 0 00-.953-.386H13.7V5.312C13.7 4.588 13.095 4 12.35 4h-9C2.605 4 2 4.588 2 5.313v8.75c0 .724.605 1.312 1.35 1.312h.45C3.8 16.825 5.01 18 6.5 18c1.49 0 2.7-1.176 2.7-2.625h3.6c0 1.45 1.21 2.625 2.7 2.625 1.49 0 2.7-1.176 2.7-2.625h1.35c.247 0 .45-.197.45-.438v-.874a.445.445 0 00-.45-.438zM6.5 16.688c-.745 0-1.35-.588-1.35-1.313s.605-1.313 1.35-1.313c.745 0 1.35.588 1.35 1.313s-.605 1.313-1.35 1.313zm1.35-4.813c-1.74 0-3.15-1.37-3.15-3.063C4.7 7.12 6.11 5.75 7.85 5.75S11 7.12 11 8.813c0 1.692-1.41 3.062-3.15 3.062zm7.65 4.813c-.745 0-1.35-.588-1.35-1.313s.605-1.313 1.35-1.313c.745 0 1.35.588 1.35 1.313s-.605 1.313-1.35 1.313zM17.75 11H13.7V7.937h1.24l2.81 2.732V11z" fill="rgb(255 255 255)" fill-rule="nonzero"></path></svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -3,6 +3,6 @@
|
||||
@isset ($featureTitle)
|
||||
<h3 class="text-blue-800 font-bold mb-2 uppercase">{{ $featureTitle }}</h3>
|
||||
@endisset
|
||||
<p class="text-lg">{{ $slot }}</p>
|
||||
<p class="text-gray-800">{{ $slot }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,46 +30,45 @@
|
||||
<meta name="msapplication-config" content="{{ url('/favicons/browserconfig.xml') }}">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
{{-- Fathom --}}
|
||||
<script src="https://net.phpmon.app/script.js" data-site="HVPVBSJR" defer></script>
|
||||
<script src="https://cdn.usefathom.com/script.js" data-site="HVPVBSJR" defer></script>
|
||||
</head>
|
||||
<body class="font-sans antialiased">
|
||||
<div>
|
||||
<div class="bg-blue-50 flex">
|
||||
<div class="bg-blue-900 flex">
|
||||
<header class="flex flex-col m-auto max-w-xl py-5 md:py-8 lg:py-10 p-4">
|
||||
<div>
|
||||
<x-logo size="100"></x-logo>
|
||||
<h1 class="text-5xl font-bold mb-3 text-blue-800">
|
||||
Monitor and manage<br/>your PHP installations<br/> <span class="text-black">with ease</span>.
|
||||
<h1 class="text-5xl font-bold mb-3 text-white">
|
||||
Monitor and manage<br/>your PHP installations<br/> <span class="text-blue-400">with ease</span>.
|
||||
</h1>
|
||||
<p class="text-2xl leading-9 mt-8"><b>PHP Monitor</b> is a lightweight, native Mac menu bar app that interacts with <a href="https://github.com/laravel/valet" class="underline">Laravel Valet</a>.</p>
|
||||
<p class="text-2xl leading-9 mt-8 text-white"><b>PHP Monitor</b> is a lightweight, native Mac menu bar app that works best when accompanied by <a href="https://github.com/laravel/valet" class="underline">Laravel Valet</a> (but it also works without it).</p>
|
||||
<div class="flex md:space-x-3 mt-6 flex-col md:flex-row">
|
||||
<a href="{{ url()->route('releases') }}" class="mt-4 text-lg md:text-xl px-3 py-2 inline-block bg-white hover:bg-blue-200 text-black rounded-lg shadow-md flex">
|
||||
<a href="{{ url()->route('releases') }}" class="mt-4 text-lg md:text-xl px-4 py-2 bg-green-400 hover:bg-green-500 text-black hover:text-gray-900 rounded-lg shadow-md flex">
|
||||
<svg width="28" height="28" viewBox="0 0 24 24"><path fill="currentColor" d="M13 13v5.585l1.828-1.828l1.415 1.415L12 22.414l-4.243-4.242l1.415-1.415L11 18.585V13h2zM12 2a7.001 7.001 0 0 1 6.954 6.194a5.5 5.5 0 0 1-.953 10.784v-2.014a3.5 3.5 0 1 0-1.112-6.91a5 5 0 1 0-9.777 0a3.5 3.5 0 0 0-1.292 6.88l.18.03v2.014a5.5 5.5 0 0 1-.954-10.784A7 7 0 0 1 12 2z"/></svg>
|
||||
<span class="ml-2">Download</span>
|
||||
</a>
|
||||
<a href="{{ url()->route('github') }}" class="mt-4 text-lg md:text-xl px-3 py-2 inline-block bg-white hover:bg-blue-200 text-black rounded-lg shadow-md flex">
|
||||
<a href="{{ url()->route('github') }}" class="mt-4 text-lg md:text-xl px-3 py-2 bg-white hover:bg-blue-200 text-black rounded-lg shadow-md flex">
|
||||
<svg width="28" height="28" viewBox="0 0 24 24"><path fill="currentColor" d="M13 21v2.5l-3-2l-3 2V21h-.5A3.5 3.5 0 0 1 3 17.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1h-7zm0-2h6v-3H6.5a1.5 1.5 0 0 0 0 3H7v-2h6v2zm6-5V4H6v10.035A3.53 3.53 0 0 1 6.5 14H19zM7 5h2v2H7V5zm0 3h2v2H7V8zm0 3h2v2H7v-2z"/></svg>
|
||||
<span class="ml-2">GitHub</span>
|
||||
</a>
|
||||
<a href="{{ url()->route('sponsor') }}" class="mt-4 text-lg md:text-xl px-3 py-2 inline-block bg-white hover:bg-blue-200 text-black rounded-lg shadow-md flex">
|
||||
<a href="{{ url()->route('sponsor') }}" class="mt-4 text-lg md:text-xl px-3 py-2 bg-white hover:bg-blue-200 text-black rounded-lg shadow-md flex">
|
||||
<svg width="28" height="28" viewBox="0 0 24 24"><path fill="rgb(191, 57, 137)" d="M17.625 1.499c-2.32 0-4.354 1.203-5.625 3.03c-1.271-1.827-3.305-3.03-5.625-3.03C3.129 1.499 0 4.253 0 8.249c0 4.275 3.068 7.847 5.828 10.227a33.14 33.14 0 0 0 5.616 3.876l.028.017l.008.003l-.001.003c.163.085.342.126.521.125c.179.001.358-.041.521-.125l-.001-.003l.008-.003l.028-.017a33.14 33.14 0 0 0 5.616-3.876C20.932 16.096 24 12.524 24 8.249c0-3.996-3.129-6.75-6.375-6.75zm-.919 15.275a30.766 30.766 0 0 1-4.703 3.316l-.004-.002l-.004.002a30.955 30.955 0 0 1-4.703-3.316c-2.677-2.307-5.047-5.298-5.047-8.523c0-2.754 2.121-4.5 4.125-4.5c2.06 0 3.914 1.479 4.544 3.684c.143.495.596.797 1.086.796c.49.001.943-.302 1.085-.796c.63-2.205 2.484-3.684 4.544-3.684c2.004 0 4.125 1.746 4.125 4.5c0 3.225-2.37 6.216-5.048 8.523z"/></svg>
|
||||
<span class="ml-2">Sponsor</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<span class="absolute text-white tracking-tight rotate-12 font-bold"
|
||||
style="font-size: 700px; left: -100px; top: -150px;
|
||||
user-select: none; opacity: 3%;">6</span>
|
||||
</header>
|
||||
</div>
|
||||
<div class="px-4">
|
||||
<div class="flex flex-col m-auto max-w-3xl py-4 md:py-10">
|
||||
<div class="max-w-3xl m-auto" style="position: relative;">
|
||||
<img src="{{ url('/images/phpmon.jpg?v=ventura+5.8') }}" alt="PHP Monitor" class="m-auto max-w-3xl max-w-full bg-gray-100 rounded-xl shadow-lg">
|
||||
<span style="position: absolute; bottom: 20px; left: -10px;" class="bg-blue-900 text-white text-xl py-1 px-2 rounded rotate-2">Now works with macOS Ventura as well!</span>
|
||||
<img src="{{ url('/images/marketing.jpg?v=6.0') }}" alt="PHP Monitor" class="m-auto max-w-full bg-gray-100 rounded-xl shadow-lg">
|
||||
</div>
|
||||
<div class="max-w-2xl m-auto mt-12">
|
||||
<p class="text-2xl leading-9 mb-6"><b>PHP Monitor</b> helps you set up and develop <span class="text-blue-800">Laravel</span> and <span class="text-blue-800">Symfony</span> projects. It's also great for <span class="text-blue-800">WordPress</span> or <span class="text-blue-800">Drupal</span> sites. In fact, it's a great companion for all kinds of projects, no matter the framework or CMS.</p>
|
||||
<p class="mb-6 text-lg">This app is made with <span class="text-red-500">♥</span> by <a href="https://nicoverbruggen.be" class="text-blue-800">Nico Verbruggen</a>. It is open source and entirely free to use. Further development of this app is supported by <a class="text-blue-800" href="https://nicoverbruggen.be/sponsor">your donations</a>.
|
||||
You are also encouraged to <a href="{{ url()->route('github') }}" class="text-blue-800">star the repository</a> on GitHub.
|
||||
</p>
|
||||
</div>
|
||||
@if (Cache::has('stargazers') && Cache::has('downloads'))
|
||||
<div class="max-w-2xl m-auto mt-6 pb-6 space-y-3 border border-b-gray-200 rounded-lg px-8 py-4 shadow-lg">
|
||||
@ -91,9 +90,34 @@
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="max-w-2xl m-auto mt-12">
|
||||
<p class="mb-6 text-lg">This app is made with <span class="text-red-500">♥</span> by <a href="https://nicoverbruggen.be" class="text-blue-800">Nico Verbruggen</a>. It is open source and entirely free to use. Further development of this app is supported by <a class="text-blue-800" href="https://nicoverbruggen.be/sponsor">your donations</a>. You are also encouraged to <a href="{{ url()->route('github') }}" class="text-blue-800">star the repository</a> on GitHub.</p>
|
||||
<p class="text-gray-500 leading-6">Your stars and sponsorships are very much appreciated. Thanks to your support, the app has seen a steady stream of updates with new features and bugfixes over the last two years, and will continue to be supported as long as it makes sense to do so.</p>
|
||||
</div>
|
||||
</div>
|
||||
<x-feature feature-title="A solid foundation." img-src="/images/valet.png">
|
||||
PHP Monitor interacts with your local <b>Laravel Valet</b> installation. That means that PHP Monitor builds upon a solid and trusted foundation. If you've already got that installed, it's very easy to get started.
|
||||
</div>
|
||||
<div class="bg-blue-50 flex p-5 py-10 my-6">
|
||||
<div class="flex flex-col m-auto max-w-xl space-y-2 py-8">
|
||||
<h2 class="text-3xl mb-3">
|
||||
<span class="inline-block bg-blue-800 px-2 py-1 text-white text-2xl rounded">
|
||||
PHP Monitor 6.0 is now available.
|
||||
</span>
|
||||
</h2>
|
||||
<div class="text-xl mt-8 leading-8">
|
||||
<p class="mb-4">With the latest major update, PHP Monitor now comes with the hotly anticipated <b>PHP Version Manager</b>, the often requested <b>Standalone Mode</b>, and additional improvements.</p>
|
||||
<p class="text-base">Learn more in the <a href="https://nicoverbruggen.be/blog/phpmon-6.0-release" class="text-blue-800">dedicated blog post</a> on my personal website, or explore all of PHP Monitor's features below.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-4">
|
||||
<x-feature feature-title="Works great with Laravel Valet." img-src="/images/valet.png">
|
||||
PHP Monitor can interact with your local <b>Laravel Valet</b> installation. That means that PHP Monitor builds upon a solid and trusted foundation. If you've already got that installed, it's very easy to get started.
|
||||
</x-feature>
|
||||
<x-feature feature-title="Also works standalone." img-src="/images/standalone.jpg" class="lg:flex-row-reverse" y-position="top" new>
|
||||
PHP Monitor <b>can also be used without</b> Laravel Valet. With the introduction of Standalone Mode some features will not be available, but I'm sure that you'll find the app a real help to your workflow if you don't use Laravel Valet.
|
||||
</x-feature>
|
||||
<x-feature feature-title="A GUI for managing PHP versions." img-src="/images/version-manager.jpg" new y-position="top">
|
||||
With the new PHP Version Manager, you can easily <b>install, upgrade and remove</b> individual PHP versions without needing to manually type or copy Homebrew commands. The app will also attempt to <b>automatically fix</b> broken PHP versions.
|
||||
</x-feature>
|
||||
<x-feature feature-title="Information at a glance." img-src="/images/menu-bar.jpg" y-position="top" class="lg:flex-row-reverse">
|
||||
PHP Monitor lives in your menu bar. From here, you can use the bulk of PHP Monitor's functionality, including the <b>global version switcher</b> as well as <b>services status</b> section.
|
||||
@ -111,9 +135,11 @@
|
||||
In addition to offering a global version switcher (which switches the PHP version for all of your projects), this app also includes support for Valet's <b>site isolation</b> feature. This allows you to use a specific version of PHP with a specific domain, all while retaining the globally linked PHP version.
|
||||
</x-feature>
|
||||
<x-feature feature-title="Determine compatibility." img-src="/images/phpinfo.jpg" y-position="top">
|
||||
PHP Monitor will help you figure out if your sites are <b>compatible</b> with the <b>currently linked version of PHP</b>. You will receive suggestions when site isolation may be of use.
|
||||
PHP Monitor will help you figure out if your sites are <b>compatible</b> with the <b>currently linked version of PHP</b>. You will receive suggestions when <b>site isolation</b> may be of use for a given domain.
|
||||
</x-feature>
|
||||
<x-feature feature-title="Small, fast and easy updates." img-src="/images/updater.jpg" y-position="bottom" class="lg:flex-row-reverse" new>
|
||||
The app also comes with an optional (but very fast) <b>built-in updater</b>, which allows you to stay up-to-date with the latest developments and bug fixes, so you can have a seamless PHP switching experience.
|
||||
</x-feature>
|
||||
|
||||
<div class="flex lg:flex-row flex-col m-auto max-w-5xl py-4 md:py-8 gap-x-10">
|
||||
<x-single-feature feature-title="A tiny footprint.">
|
||||
Laravel Valet is a lightweight solution that is much leaner than Docker, and PHP Monitor as a companion tool uses equally few system resources. It is light on RAM and its CPU usage is negligible.
|
||||
|