Skip to content

Commit 2cd4dba

Browse files
committed
Merge branch 'cake4' into nb120
2 parents 1523fab + d9ec349 commit 2cd4dba

File tree

54 files changed

+524
-272
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+524
-272
lines changed

README.md

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
1-
# NetBeans CakePHP3 Plugin (Dev)
1+
# NetBeans CakePHP3/4 Plugin
22

3-
This plugin provides support for CakePHP3.
3+
This plugin provides support for CakePHP3/4.
44

55
## Requirements
66

7-
- NetBeans 8.1+
7+
- NetBeans 12.0+
88

99
## Downloads
1010

1111
- https://github.com/junichi11/cakephp3-netbeans/releases
12+
- https://plugins.netbeans.apache.org/catalogue/?id=27
1213

1314
## How To Install
1415

16+
### Via NetBeans Plugin Portal Update Center
17+
18+
- Tools > Plugins > Available Plugins
19+
- Click the "Check for Newest" button
20+
- Check "CakePHP3/4 Framework"
21+
- Click the "Install" button
22+
23+
### Use downloaded nbms
24+
1525
- Download a nbm (e.g. org-netbeans-modules-php-cake3-0.0.1-dev-201408251540.nbm)
1626
- Tools > Plugins > Downloaded > Add Plugins
1727
- Select the nbm
@@ -21,16 +31,14 @@ This plugin provides support for CakePHP3.
2131

2232
You can update to the new version by the same way as the install. You don't have to uninstall the old version.
2333

24-
Currently, this plugin is not available on NetBeans Plugin Portal. But you can update directly from NetBeans IDE when it's available on it later.
25-
2634
## How To Enable
2735

2836
- Open the project properties dialog (Right-Click your project > properties)
2937
- Frameworks > CakePHP3 > Check `Enabled`
3038

3139
## Use Your Custom Directory Structure
3240

33-
If you just installed Cake3 via Composer, you don't have to do anything.
41+
If you just installed Cake3/4 via Composer, you don't have to do anything.
3442

3543
- Open the project properties
3644
- Set relative paths from your Source Directory to Path settings
@@ -224,11 +232,11 @@ The file format is the following:
224232
### Custom nodes
225233

226234
You can add some directories(nodes) under the your project tree. Controller, Model, e.t.c. are shown by default.
227-
If you want to hide/show them, please change the options.(Tools > Options > PHP > Frameworks and Tools > CakePHP3 > Custom nodes)
235+
If you want to hide/show them, please change the options.(Tools > Options > PHP > Frameworks and Tools > CakePHP3/4 > Custom nodes)
228236

229237
## Actions
230238

231-
Right-click a project > CakePHP3
239+
Right-click a project > CakePHP3/4
232240

233241
- Run Command
234242
- Run server
@@ -251,6 +259,11 @@ Refresh the version number and category paths.
251259

252260
- https://github.com/sponsors/junichi11
253261

262+
## Issues
263+
264+
If you have issues, please submit them to [GitHub Issues](https://github.com/junichi11/cakephp3-netbeans/issues) .
265+
Please don't create PRs soon.
266+
254267
## License
255268

256269
Apache License, Version 2.0
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
OpenIDE-Module-Display-Category=PHP
22
OpenIDE-Module-Long-Description=\
3-
Provides support for CakePHP3
4-
OpenIDE-Module-Name=CakePHP3 Framework
5-
OpenIDE-Module-Short-Description=Provides support for CakePHP3
3+
Provides support for CakePHP3/4.<br/><br/>Details: See <a href="https://github.com/junichi11/cakephp3-netbeans/blob/master/README.md">README.md</a>.
4+
OpenIDE-Module-Name=CakePHP3/4 Framework
5+
OpenIDE-Module-Short-Description=Provides support for CakePHP3/4

src/org/netbeans/modules/php/cake3/CakePHP3ActionsExtender.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import javax.swing.Action;
2222
import org.netbeans.modules.php.api.phpmodule.PhpModule;
2323
import org.netbeans.modules.php.cake3.dotcake.Dotcake;
24-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module;
25-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module.Category;
24+
import org.netbeans.modules.php.cake3.modules.CakePHPModule;
25+
import org.netbeans.modules.php.cake3.modules.CakePHPModule.Category;
2626
import org.netbeans.modules.php.cake3.ui.actions.CakePHP3BaseAction;
2727
import org.netbeans.modules.php.cake3.ui.actions.CakePHP3GoToActionAction;
2828
import org.netbeans.modules.php.cake3.ui.actions.CakePHP3GoToViewAction;
@@ -50,11 +50,16 @@ public CakePHP3ActionsExtender(PhpModule phpModule) {
5050
}
5151

5252
@NbBundle.Messages({
53-
"CakePHP3ActionsExtender.menuName=CakePHP3"
53+
"# {0} - version",
54+
"CakePHP3ActionsExtender.menuName=CakePHP{0}"
5455
})
5556
@Override
5657
public String getMenuName() {
57-
return Bundle.CakePHP3ActionsExtender_menuName();
58+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
59+
int majorVersion = cakeModule.getVersion().getMajor();
60+
assert majorVersion >= 3 : "Invalid major version:" + majorVersion; // NOI18N
61+
String version = majorVersion < 3 ? "" : String.valueOf(majorVersion);
62+
return Bundle.CakePHP3ActionsExtender_menuName(version);
5863
}
5964

6065
@Override
@@ -64,7 +69,7 @@ public List<? extends Action> getActions() {
6469
new CakePHP3RefreshModuleAction()
6570
);
6671
List<CakePHP3BaseAction> actions = new ArrayList<>(defaultActions);
67-
CakePHP3Module cakeModule = CakePHP3Module.forPhpModule(phpModule);
72+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
6873
Dotcake dotcake = cakeModule.getDotcake();
6974
if (dotcake != null) {
7075
actions.add(new OpenDotcakeAction());
@@ -84,14 +89,14 @@ public GoToActionAction getGoToActionAction(FileObject fo, int offset) {
8489

8590
@Override
8691
public boolean isActionWithView(FileObject fo) {
87-
CakePHP3Module cakeModule = CakePHP3Module.forFileObject(fo);
88-
CakePHP3Module.Category category = cakeModule.getCategory(fo);
92+
CakePHPModule cakeModule = CakePHPModule.forFileObject(fo);
93+
CakePHPModule.Category category = cakeModule.getCategory(fo);
8994
return category == Category.CONTROLLER;
9095
}
9196

9297
@Override
9398
public boolean isViewWithAction(FileObject fo) {
94-
CakePHP3Module cakeModule = CakePHP3Module.forFileObject(fo);
99+
CakePHPModule cakeModule = CakePHPModule.forFileObject(fo);
95100
return cakeModule.isTemplateFile(fo);
96101
}
97102

src/org/netbeans/modules/php/cake3/CakePHP3FrameworkProvider.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.netbeans.modules.php.api.phpmodule.PhpModuleProperties;
2222
import org.netbeans.modules.php.cake3.commands.CakePHP3FrameworkCommandSupport;
2323
import org.netbeans.modules.php.cake3.editor.CakePHP3EditorExtender;
24-
import org.netbeans.modules.php.cake3.modules.CakePHP3ModuleFactory;
24+
import org.netbeans.modules.php.cake3.modules.CakePHPModuleFactory;
2525
import org.netbeans.modules.php.cake3.preferences.CakePHP3Preferences;
2626
import org.netbeans.modules.php.spi.editor.EditorExtender;
2727
import org.netbeans.modules.php.spi.framework.PhpFrameworkProvider;
@@ -46,8 +46,8 @@ public class CakePHP3FrameworkProvider extends PhpFrameworkProvider {
4646
private final BadgeIcon badgeIcon;
4747

4848
@NbBundle.Messages({
49-
"CakePHP3FrameworkProvider.name=CakePHP3",
50-
"CakePHP3FrameworkProvider.description=CakePHP3"
49+
"CakePHP3FrameworkProvider.name=CakePHP3/4",
50+
"CakePHP3FrameworkProvider.description=CakePHP3/4"
5151
})
5252
private CakePHP3FrameworkProvider() {
5353
super("cakephp3", // NOI18N
@@ -122,8 +122,8 @@ public EditorExtender getEditorExtender(PhpModule phpModule) {
122122

123123
@Override
124124
public void phpModuleClosed(PhpModule phpModule) {
125-
// release CakePHP3Module
126-
CakePHP3ModuleFactory factory = CakePHP3ModuleFactory.getInstance();
125+
// release CakePHPModule
126+
CakePHPModuleFactory factory = CakePHPModuleFactory.getInstance();
127127
factory.remove(phpModule);
128128
}
129129

src/org/netbeans/modules/php/cake3/CakePHP3ModuleCustomizerExtender.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import javax.swing.event.ChangeListener;
2222
import org.netbeans.modules.php.api.phpmodule.PhpModule;
2323
import org.netbeans.modules.php.api.validation.ValidationResult;
24-
import org.netbeans.modules.php.cake3.modules.CakePHP3ModuleFactory;
24+
import org.netbeans.modules.php.cake3.modules.CakePHPModuleFactory;
2525
import org.netbeans.modules.php.cake3.preferences.CakePHP3Preferences;
2626
import org.netbeans.modules.php.cake3.ui.customizer.CakePHP3CustomizerPanel;
2727
import org.netbeans.modules.php.cake3.validators.CakePHP3CustomizerValidator;
@@ -65,7 +65,7 @@ public CakePHP3ModuleCustomizerExtender(PhpModule phpModule) {
6565
}
6666

6767
@NbBundle.Messages({
68-
"CakePHP3ModuleCustomizerExtender.displayName=CakePHP3"
68+
"CakePHP3ModuleCustomizerExtender.displayName=CakePHP3/4"
6969
})
7070
@Override
7171
public String getDisplayName() {
@@ -149,7 +149,7 @@ public EnumSet<Change> save(PhpModule phpModule) {
149149
CakePHP3Preferences.setJsUrl(phpModule, p.getJs());
150150
CakePHP3Preferences.setDotcakePath(phpModule, p.getDotcakePath());
151151
// release CakePHP3Module
152-
CakePHP3ModuleFactory.getInstance().remove(phpModule);
152+
CakePHPModuleFactory.getInstance().remove(phpModule);
153153
return EnumSet.of(Change.FRAMEWORK_CHANGE);
154154
}
155155

src/org/netbeans/modules/php/cake3/ConfigurationFiles.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.List;
2222
import javax.swing.event.ChangeListener;
2323
import org.netbeans.modules.php.api.phpmodule.PhpModule;
24-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module;
24+
import org.netbeans.modules.php.cake3.modules.CakePHPModule;
2525
import org.netbeans.modules.php.spi.phpmodule.ImportantFilesImplementation;
2626
import org.openide.filesystems.FileChangeAdapter;
2727
import org.openide.filesystems.FileEvent;
@@ -64,8 +64,8 @@ public Collection<FileInfo> getFiles() {
6464
}
6565

6666
private synchronized List<FileObject> getConfigDirectories() {
67-
CakePHP3Module cakeModule = CakePHP3Module.forPhpModule(phpModule);
68-
List<FileObject> directories = cakeModule.getDirectories(CakePHP3Module.Base.APP, CakePHP3Module.Category.CONFIG, null);
67+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
68+
List<FileObject> directories = cakeModule.getDirectories(CakePHPModule.Base.APP, CakePHPModule.Category.CONFIG, null);
6969
if (!isInitialized) {
7070
isInitialized = true;
7171
for (FileObject directory : directories) {

src/org/netbeans/modules/php/cake3/commands/Cake3Script.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
import org.netbeans.modules.php.api.phpmodule.PhpModule;
4141
import org.netbeans.modules.php.api.util.UiUtils;
4242
import org.netbeans.modules.php.cake3.CakeVersion;
43-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module;
44-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module.Base;
43+
import org.netbeans.modules.php.cake3.modules.CakePHPModule;
44+
import org.netbeans.modules.php.cake3.modules.CakePHPModule.Base;
4545
import org.netbeans.modules.php.spi.framework.commands.FrameworkCommand;
4646
import org.openide.DialogDisplayer;
4747
import org.openide.NotifyDescriptor;
@@ -117,7 +117,7 @@ public static Cake3Script forPhpModule(PhpModule phpModule, boolean warn) throws
117117
}
118118

119119
private static FileObject getScript(PhpModule phpModule) {
120-
CakePHP3Module module = CakePHP3Module.forPhpModule(phpModule);
120+
CakePHPModule module = CakePHPModule.forPhpModule(phpModule);
121121
if (module == null) {
122122
return null;
123123
}
@@ -276,10 +276,11 @@ private List<FrameworkCommand> getFrameworkCommandsInternalXml(PhpModule phpModu
276276

277277
private List<String> getCommandListParams(PhpModule phpModule) {
278278
List<String> params = new ArrayList<>();
279-
CakePHP3Module cakeModule = CakePHP3Module.forPhpModule(phpModule);
279+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
280280
CakeVersion version = cakeModule.getVersion();
281281
if (version != null) {
282-
if (version.getMajor() >= 3 && version.getMinor() >= 5) {
282+
if ((version.getMajor() >= 3 && version.getMinor() >= 5)
283+
|| version.getMajor() >= 4) { // cakephp 4
283284
params.addAll(COMMAND_LIST_XML_COMMAND_350);
284285
} else {
285286
params.addAll(COMMAND_LIST_XML_COMMAND);
@@ -326,7 +327,7 @@ private ExecutionDescriptor getSilentDescriptor() {
326327
}
327328

328329
private PhpExecutable createPhpExecutable(PhpModule phpModule) {
329-
CakePHP3Module module = CakePHP3Module.forPhpModule(phpModule);
330+
CakePHPModule module = CakePHPModule.forPhpModule(phpModule);
330331
List<FileObject> directories = module.getDirectories(Base.APP);
331332
PhpExecutable phpExecutable = new PhpExecutable(cakePath)
332333
.viaAutodetection(true);

src/org/netbeans/modules/php/cake3/commands/CakePHP3FrameworkCommandSupport.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
import org.netbeans.modules.php.api.executable.InvalidPhpExecutableException;
2424
import org.netbeans.modules.php.api.phpmodule.PhpModule;
2525
import org.netbeans.modules.php.api.util.UiUtils;
26-
import org.netbeans.modules.php.cake3.CakePHP3Constants;
26+
import org.netbeans.modules.php.cake3.CakeVersion;
27+
import org.netbeans.modules.php.cake3.modules.CakePHPModule;
2728
import org.netbeans.modules.php.spi.framework.commands.FrameworkCommand;
2829
import org.netbeans.modules.php.spi.framework.commands.FrameworkCommandSupport;
2930

@@ -39,7 +40,11 @@ public CakePHP3FrameworkCommandSupport(PhpModule phpModule) {
3940

4041
@Override
4142
public String getFrameworkName() {
42-
return CakePHP3Constants.CAKEPHP3;
43+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
44+
CakeVersion cakeVersion = cakeModule.getVersion();
45+
int majorVersion = cakeVersion.getMajor();
46+
String version = majorVersion < 3 ? "" : String.valueOf(majorVersion); // NOI18N
47+
return "CakePHP" + version; // NOI18N
4348
}
4449

4550
@Override

src/org/netbeans/modules/php/cake3/dotcake/DotcakeSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.List;
2222
import org.netbeans.modules.php.api.util.StringUtils;
2323
import org.netbeans.modules.php.cake3.dotcake.Dotcake.BuildPathCategory;
24-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module.Category;
24+
import org.netbeans.modules.php.cake3.modules.CakePHPModule.Category;
2525
import org.openide.filesystems.FileObject;
2626
import org.openide.filesystems.FileUtil;
2727

src/org/netbeans/modules/php/cake3/editor/CakePHP3EditorExtender.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
import org.netbeans.modules.php.cake3.editor.visitors.ControllerVisitor;
3737
import org.netbeans.modules.php.cake3.editor.visitors.HelperVisitor;
3838
import org.netbeans.modules.php.cake3.editor.visitors.ViewVisitor;
39-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module;
40-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module.Base;
41-
import org.netbeans.modules.php.cake3.modules.CakePHP3Module.Category;
39+
import org.netbeans.modules.php.cake3.modules.CakePHPModule;
40+
import org.netbeans.modules.php.cake3.modules.CakePHPModule.Base;
41+
import org.netbeans.modules.php.cake3.modules.CakePHPModule.Category;
4242
import org.netbeans.modules.php.cake3.modules.ModuleUtils;
4343
import org.netbeans.modules.php.editor.parser.PHPParseResult;
4444
import org.netbeans.modules.php.editor.parser.api.Utils;
@@ -63,7 +63,7 @@ public CakePHP3EditorExtender(PhpModule phpModule) {
6363
@Override
6464
public List<PhpBaseElement> getElementsForCodeCompletion(FileObject fo) {
6565
// Enabled PhpBaseElement is just PhpVariable
66-
CakePHP3Module cakeModule = CakePHP3Module.forPhpModule(phpModule);
66+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
6767
String ext = fo.getExt();
6868
if (!ext.equals("php") && !ext.equals(cakeModule.getCtpExt())) { // NOI18N
6969
return Collections.emptyList();
@@ -101,7 +101,7 @@ public List<PhpBaseElement> getElementsForCodeCompletion(FileObject fo) {
101101
return elements;
102102
}
103103

104-
private void parseAppController(CakePHP3Module cakeModule, Base base, String pluginName, List<PhpBaseElement> elements) {
104+
private void parseAppController(CakePHPModule cakeModule, Base base, String pluginName, List<PhpBaseElement> elements) {
105105
FileObject appController = cakeModule.getFile(base, Category.CONTROLLER, "AppController.php", pluginName); // NOI18N
106106
if (appController != null) {
107107
Set<PhpClass> phpClasses = parseFields(appController, Category.CONTROLLER);
@@ -111,7 +111,7 @@ private void parseAppController(CakePHP3Module cakeModule, Base base, String plu
111111
}
112112
}
113113

114-
private void parseAppView(CakePHP3Module cakeModule, Base base, String pluginName, List<PhpBaseElement> elements) {
114+
private void parseAppView(CakePHPModule cakeModule, Base base, String pluginName, List<PhpBaseElement> elements) {
115115
if (ModuleUtils.isTemplate(category)) {
116116
FileObject appView = cakeModule.getFile(base, Category.VIEW, "AppView.php", pluginName); // NOI18N
117117
if (appView != null) {
@@ -139,7 +139,7 @@ private Set<PhpClass> parseFields(FileObject fo, final Category category) {
139139
String fileName = fo.getName();
140140
// if category is template, get a controller file for a template file
141141
if (!"AppController".equals(fileName) && category == Category.TEMPLATE) {
142-
CakePHP3Module cakeModule = CakePHP3Module.forPhpModule(phpModule);
142+
CakePHPModule cakeModule = CakePHPModule.forPhpModule(phpModule);
143143
target = cakeModule.getController(fo);
144144
if (target == null) {
145145
return Collections.singleton(phpClass);

0 commit comments

Comments
 (0)