mailpoet
所属分类:建站系统
开发工具:PHP
文件大小:128483KB
下载次数:0
上传日期:2023-06-09 16:49:29
上 传 者:
sh-1993
说明: WordPress的免费新闻稿插件
(A free newsletter plugin for WordPress)
文件列表:
mailpoet-trunk (0, 2023-09-07)
mailpoet-trunk\.circleci (0, 2023-09-07)
mailpoet-trunk\.circleci\apache (0, 2023-09-07)
mailpoet-trunk\.circleci\apache\mailpoet.loc.conf (344, 2023-09-07)
mailpoet-trunk\.circleci\config.yml (36221, 2023-09-07)
mailpoet-trunk\.circleci\fake-sendmail.php (415, 2023-09-07)
mailpoet-trunk\.circleci\mailpoet_php.ini (277, 2023-09-07)
mailpoet-trunk\.circleci\nproc.js (689, 2023-09-07)
mailpoet-trunk\.circleci\setup.bash (3644, 2023-09-07)
mailpoet-trunk\.circleci\wordpress (0, 2023-09-07)
mailpoet-trunk\.circleci\wordpress\.htaccess (369, 2023-09-07)
mailpoet-trunk\.dockerignore (42, 2023-09-07)
mailpoet-trunk\.editorconfig (2016, 2023-09-07)
mailpoet-trunk\.husky (0, 2023-09-07)
mailpoet-trunk\.husky\pre-commit (130, 2023-09-07)
mailpoet-trunk\.npmrc (56, 2023-09-07)
mailpoet-trunk\.nvmrc (8, 2023-09-07)
mailpoet-trunk\.pnpmfile.cjs (755, 2023-09-07)
mailpoet-trunk\.prettierignore (566, 2023-09-07)
mailpoet-trunk\.prettierrc (72, 2023-09-07)
mailpoet-trunk\CONTRIBUTING.md (2778, 2023-09-07)
mailpoet-trunk\SUPPORT.md (790, 2023-09-07)
mailpoet-trunk\babel.config.js (200, 2023-09-07)
mailpoet-trunk\dev (0, 2023-09-07)
mailpoet-trunk\dev\dashboard (0, 2023-09-07)
mailpoet-trunk\dev\dashboard\favicon.png (5181, 2023-09-07)
mailpoet-trunk\dev\dashboard\index.html (2455, 2023-09-07)
... ...
# MailPoet
The **MailPoet** plugin monorepo.
To use our Docker-based development environment (recommended), continue with the steps below.
If you'd like to use the plugin code directly, see details in [the plugin's readme](https://github.com/mailpoet/mailpoet/blob/master/mailpoet/README.md).
## ” Initial setup
1. Run `./do setup` to pull everything and install necessary dependencies.
2. Add secrets to `.env` files in `mailpoet` and `mailpoet-premium` directories. Go to the Secret Store and look for "MailPoet: plugin .env"
3. Run `./do start` to start the stack.
4. Go to http://localhost:8888 to see the dashboard of the dev environment.
## … Additional dependencies
Even though it possible to run everything using Docker, in the development workflow,
it may be faster and more convenient to run some tasks outside the container. Therefore,
the following tools are recommended:
1. **PHP** as per `composer.json` requirements.
2. **Node.js**, as specified by `.nvmrc`. For automatic management use [nvm](https://github.com/mailpoet/mailpoet/blob/master/https://github.com/nvm-sh/nvm), [FNM](https://github.com/mailpoet/mailpoet/blob/master/https://github.com/Schniz/fnm), or [Volta](https://github.com/mailpoet/mailpoet/blob/master/https://github.com/volta-cli/volta).
3. **pnpm**, as specified in `package.json`. For automatic setup enable [Corepack](https://github.com/mailpoet/mailpoet/blob/master/https://nodejs.org/docs/latest-v17.x/api/corepack.html) using `corepack enable`.
## ” PHPStorm setup for XDebug
In `Languages & Preferences > PHP > Servers` set path mappings:
```shell
wordpress -> /var/www/html
mailpoet -> /var/www/html/wp-content/plugins/mailpoet
mailpoet-premium -> /var/www/html/wp-content/plugins/mailpoet-premium
```
For PHP 8 and XDebug 3 we support **browser debugging extension**.
You can choose extension by your browser in [JetBrains documentation](https://github.com/mailpoet/mailpoet/blob/master/https://www.jetbrains.com/help/phpstorm/browser-debugging-extensions.html).
To use XDebug inside the **cron**, you need to pass a URL argument `&XDEBUG_TRIGGER=yes`
[in the cron request](https://github.com/mailpoet/mailpoet/blob/master/https://github.com/mailpoet/mailpoet/blob/bf7bd6d2d9090ed6ec7b8b575bb7d6b08e663a52/lib/Cron/CronHelper.php#L155-L166).
Alternatively, you can add `XDEBUG_TRIGGER: yes` to the `wordpress` service in `docker-compose.yml` and restart it (which will run XDebug also for all other requests).
## Xdebug develop mode
[Xdebug develop mode](https://github.com/mailpoet/mailpoet/blob/master/https://xdebug.org/docs/develop) is disabled by default because it causes performance issues due to conflicts with the DI container.
It can be enabled when needed using the `XDEBUG_MODE` environment variable. For example, it is possible to enable it by adding the following to `docker-compose.override.yml`:
```
environment:
XDEBUG_MODE: debug, develop
```
## Xdebug for integration tests
- In Languages & Preferences > PHP > Servers create a new sever named `MailPoetTest`, set the host to `localhost` and port to `80` and set following path mappings:
```shell
wordpress -> /wp-core
mailpoet -> /wp-core/wp-content/plugins/mailpoet
mailpoet-premium -> /wp-core/wp-content/plugins/mailpoet-premium
mailpoet/vendor/bin/codecept -> /project/vendor/bin/codecept
mailpoet/vendor/bin/wp -> /usr/local/bin/wp
```
- Add `XDEBUG_TRIGGER: 1` environment to `mailpoet/tests/docker/docker-compose.yml` -> codeception service to start triggering Xdebug
- Make PHPStorm listen to connections by clicking on the phone icon
## ’ NFS volume sharing for Mac
NFS volumes can bring more stability and performance on Docker for Mac. To setup NFS volume sharing run:
```shell
sudo sh dev/mac-nfs-setup.sh
```
Then create a Docker Compose override file with NFS settings and restart containers:
```shell
cp docker-compose.override.macos-sample.yml docker-compose.override.yml
docker-compose down -v --remove-orphans
docker-compose up -d
```
**NOTE:** If you are on MacOS Catalina or newer, make sure to put the repository
outside your `Documents` folder, otherwise you may run into [file permission issues](https://github.com/mailpoet/mailpoet/blob/master/https://objekt.click/2019/11/docker-the-problem-with-macos-catalina/).
# Husky
We use [Husky](https://github.com/mailpoet/mailpoet/blob/master/https://github.com/typicode/husky) to run automated checks in pre-commit hooks.
In case you're using [NVM](https://github.com/mailpoet/mailpoet/blob/master/https://github.com/nvm-sh/nvm) for Node version management you may
need to create or update your `~/.huskyrc` file with:
```sh
# This loads nvm.sh and sets the correct PATH before running the hooks:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
```
Without it, you may experience errors in some Git clients.
## Commands
The `./do` script define aliases for most of the commands you will need while working on plugins:
```shell
./do setup Setup the environment.
./do start Start the docker containers.
./do stop Stop the docker containers.
./do ssh [--test] Run an interactive bash shell inside the plugin directory.
./do run [--test] Run a custom bash command in the wordpress container.
./do acceptance [--premium] Run acceptance tests.
./do build [--premium] Builds a .zip for the plugin.
./do templates Generates templates classes and assets.
./do [--test] [--premium] Run './do ' inside the plugin directory.
Options:
--test Run the command using the 'test_wordpress' service.
--premium Run the command inside the premium plugin.
```
You can access this help in your command line running `./do` without parameters.
## ‰ Adding new templates to the plugin
[Read the article.](https://github.com/mailpoet/mailpoet/blob/master/https://mailpoet.atlassian.net/wiki/spaces/MAILPOET/pages/629374977/Adding+new+templates+to+the+plugin)
## Testing with different PHP versions
To switch the environment to a different PHP version:
1. Check https://github.com/mailpoet/mailpoet/tree/trunk/dev for a list of available PHP versions. Each directory starting with `php` corresponds to a available version.
2. Configure the `wordpress` service in `docker-compose.override.yml` to build from the desired PHP version Dockerfile (replace {PHP_VERSION} with the name of the directory that corresponds to the version that you want to use):
```yaml
wordpress:
build:
context: .
dockerfile: dev/{PHP_VERSION}/Dockerfile
```
3. Run `docker-compose build wordpress`.
4. Start the stack with `./do start`.
To switch back to the default PHP version remove what was added in 2) and, run `docker-compose build wordpress` for application container and `docker-compose build test_wordpress` for tests container,
and start the stack using `./do start`.
## Disabling the Tracy panel
To disable the Tracy panel, add the following to `docker-compose.override.yml`:
```yaml
services:
wordpress:
environment:
MAILPOET_DISABLE_TRACY_PANEL: 1
```
## … TODO
- install woo commerce, members and other useful plugins by default
近期下载者:
相关文件:
收藏者: