PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.19
Admin Columns v7.0.19
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / TableScreenFactory / PostFactory.php
codepress-admin-columns / classes / TableScreenFactory Last commit date
Aggregate.php 1 month ago CommentFactory.php 1 month ago MediaFactory.php 1 month ago PostFactory.php 1 month ago UserFactory.php 1 month ago
PostFactory.php
57 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\TableScreenFactory;
6
7 use AC\Exception\InvalidTableScreenException;
8 use AC\PostTypeRepository;
9 use AC\TableScreen;
10 use AC\TableScreenFactory;
11 use AC\Type\TableId;
12 use WP_Post_Type;
13 use WP_Screen;
14
15 class PostFactory implements TableScreenFactory
16 {
17
18 protected PostTypeRepository $post_type_repository;
19
20 public function __construct(PostTypeRepository $post_type_repository)
21 {
22 $this->post_type_repository = $post_type_repository;
23 }
24
25 public function can_create_from_wp_screen(WP_Screen $screen): bool
26 {
27 return 'edit' === $screen->base &&
28 $screen->post_type &&
29 'edit-' . $screen->post_type === $screen->id &&
30 $this->post_type_repository->exists($screen->post_type);
31 }
32
33 public function create_from_wp_screen(WP_Screen $screen): TableScreen
34 {
35 return $this->create_table_screen(get_post_type_object($screen->post_type));
36 }
37
38 public function can_create(TableId $id): bool
39 {
40 return $this->post_type_repository->exists((string)$id);
41 }
42
43 public function create(TableId $id): TableScreen
44 {
45 if ( ! $this->can_create($id)) {
46 throw InvalidTableScreenException::from_invalid_id($id);
47 }
48
49 return $this->create_table_screen(get_post_type_object((string)$id));
50 }
51
52 protected function create_table_screen(WP_Post_Type $post_type): TableScreen\Post
53 {
54 return new TableScreen\Post($post_type);
55 }
56
57 }